2008-09-19 16 views

答えて

2

この例は、http://sachiniscool.blogspot.com/2006/01/implementing-page-transitions-in.htmlです。 AJAXとCSSを使ってFirefoxでページ遷移をエミュレートする方法について説明します。同様の方法がSafariでも機能します。以下のコードはそのページから取得され、わずかにフォーマットされています:

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"; 
} 
+0

すべてのブラウザでの動作Firefox 5は、IEの移行が行われるページURLを変更しないことです。 Chrome 12とSafari 5.1では、ブラウザは最初のページをスキップし、そのページのリファラーに行きます。しかしこれはFireFoxでも機能します。このテストは、この回答に引用されている元のURLを介して実行され、上に貼り付けられたコードは実行されませんでした。 –

1

チェックアウトScriptaculousあなたが何を指しているのかは、IE-Only JSを避けてください。