Comment puis-je ajouter des effets de transition de page comme IE dans Safari pour les pages Web?Effets de transitions de page dans Safari?
4
A
Répondre
2
Vous pouvez consulter cet exemple: http://sachiniscool.blogspot.com/2006/01/implementing-page-transitions-in.html. Il décrit comment émuler les transitions de pages dans Firefox en utilisant AJAX et CSS. La même méthode fonctionne également pour Safari. Le code ci-dessous est tiré de cette page et légèrement formaté:
var xmlhttp;
var timerId = 0;
var op = 1;
function getPageFx() {
url = "/transpage2.html";
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest()
xmlhttp.onreadystatechange=xmlhttpChange
xmlhttp.open("GET",url,true)
xmlhttp.send(null)
} else getPageIE();
}
function xmlhttpChange() {
// if xmlhttp shows "loaded"
if (xmlhttp.readyState == 4) {
// if "OK"
if (xmlhttp.status == 200) {
if (timerId != 0)
window.clearTimeout(timerId);
timerId = window.setTimeout("trans();",100);
} else {
alert(xmlhttp.status)
}
}
}
function trans() {
op -= .1;
document.body.style.opacity = op;
if(op < .4) {
window.clearTimeout(timerId);
timerId = 0; document.body.style.opacity = 1;
document.open();
document.write(xmlhttp.responseText);
document.close();
return;
}
timerId = window.setTimeout("trans();",100);
}
function getPageIE() {
window.location.href = "transpage2.html";
}
1
Check out Scriptaculous. Évitez IE JS seulement si c'est ce à quoi vous faites référence (aucune idée du type d'effet que vous voulez dire).
Comportement dans tous les navigateurs Firefox 5 est qu'il ne change pas l'URL de la page où les transitions IE font. Dans Chrome 12 et Safari 5.1, le navigateur ignore la première page et se dirige vers le référent de cette page. Cela fonctionne cependant dans FireFox. Ce test a été effectué via l'URL d'origine citée dans cette réponse et non le code collé ci-dessus. –