2012-10-29 71 views
4

我有兩個經典的HTML頁面(只是HTML和CSS)和它們之間的鏈接。
當我點擊這些鏈接時,屏幕閃爍(它在轉換之間快速變白)。
我試圖把這個在頭 - 無結果:如何在沒有屏幕閃爍的頁面之間瀏覽?

<meta http-equiv="Page-Enter" content="blendTrans(Duration=0.0)" /> 
<meta http-equiv="Page-Exit" content="blendTrans(Duration=0.0)" /> 

我通常可以打開其他網站沒有閃爍。
瀏覽器是Firefox 16.0.1。

+2

只是建議,定身的背景顏色爲您的網站的主要背景色。可能你的主要背景不是白色。 – Reflective

+0

@反射,我做了,點擊兩次後沒有閃爍 - 閃爍再次開始。 – Alegro

+0

你能提供一個鏈接到你的網站,看看到底發生了什麼? – Reflective

回答

3

只要改變你的身體背景:

body { 
    background: url("Images/sky01.jpg") repeat scroll 0 0 #121210; 
    font-family: Verdana,Geneva,sans-serif; 
    font-size: 12px; 
    margin: 0; 
    padding: 0; 
} 

背景顏色將防止白色閃爍,同時加載的背景圖像。

+0

反光,它的作品。解決了。非常感謝。 – Alegro

+0

AJAX是有史以來爲web所做的最好的想法,但它不值得重寫整個網站,以避免閃爍。祝你好運。 – Reflective

+0

我可以證明這一點。那麼你最終只能打開一整罐蠕蟲。 – Vincent

2

meta僅適用於IE瀏覽器,它們不適用於FF。

你不能依靠防止在純HTML中閃爍。我發現的最佳解決方案是用AJAX替換每個鏈接的JavaScript調用,然後用新內容替換文檔本身。頁面刷新速度非常快,下載時不會看到任何空白屏幕。

基本功能可能是這樣的:

function followLink(pageUrl) 
{ 
    jQuery.ajax({ 
     url: pageUrl, 
     type: "GET", 
     dataType: 'html', 
     success: function(response){ 
      document.getElementsByTagName('html')[0].innerHTML = response 
     } 
    }); 
} 

然後,你必須更換從鏈接:

<a href="mypage.html">Link</a> 

有了:

<a href="javascript:followLink('mypage.html')">Link</a> 

更多關於這方面的細節:更換整個HTML文檔] 1:如何用jQuer替換HTML文檔的內容y及其含義(並不總是那麼明顯)。

改進

有了這個解決方案,您強制用戶使用JavaScript,如果它不能使他們無法點擊的鏈接。出於這個原因,我會提供一個後備。首先不要更改<a>,而是使用(例如)像async-load這樣的CSS類來裝飾它們。現在,在頁面的onload他們javascript:對口,像這樣全部更換href S:

jQuery().ready(function() { 
    jQuery("a.asynch-load").each(function() { 
     this.href = "javascript:followLink(\"" + this.href + "\")"; 
    }); 
}); 

有了這個,你可以處理加載動畫太(它是如何實現取決於使用和佈局什麼yuo're )。此外,在同一個地方,您可以提供淡入/淡出動畫。

最後不要忘記,這種技術也可以用於碎片(例如,如果您提供共享導航欄和內容部分替換爲當用戶點擊鏈接導航欄時(所以你不會需要重新加載一切)

+0

Google索引怎麼樣?不知道谷歌機器人的威脅JavaScript的東西不僅僅是一個文本。其實谷歌執行一些AJAX和Javascript ......但它不斷在發展。 MSN?雅虎? – Reflective

+0

@反思,Google索引是什麼?我以前用css和javascript創建了很多html頁面,沒有閃爍。 – Alegro

+0

@Reflective在「改進」部分我建議改變以避免這些「問題」(並且在JavaScript未啓用時讓網站工作)。 –

1

嘗試嵌入圖片,因爲它延緩最終的頁面加載,因此白色的過渡時間

echo '<img src="data:image/png;base64,'; 
echo base64_encode(file_get_contents($file)); 
echo '"/>';