2011-04-15 114 views
0

我正在使用外部呈現的控件在網頁上創建菜單。該控件來自cms系統,無法修改。當調用Cufon.replace()更改提供的菜單項的字體時,我們注意到IE8中的閃爍效果,就像存在某種延遲。在FireFox 4和Chrome中,此效果不可見。我已經閱讀了有關它的其他主題,但似乎沒有看到類似於這個問題。它只發生在懸停在菜單項上。Cufon導致Internet Explorer中的延遲

我們所熟悉的事實的Cufón需要,其中需要改變字體的HTML元素後直接被調用。這仍然是必要的嗎?或者我需要在某處調用Cufon.Now()?當我關於菜單項懸停時,什麼導致閃爍效應?

<cc1:MenuBuilder ID="Mainmenu" MenuName="Mainmenu" runat="server" CssClass="menubar-nav-list" UseDiv="true" ShowLevels="1" /> 
<script language="javascript" type="text/javascript"> 
    Cufon.replace('#Mainmenu .menuitem', { fontFamily: 'DIN Eng', hover: true }); 
</script> 

回答

1

你有<body>標籤後立即執行下面的代碼。

<script type="text/javascript">Cufon.now();</script> 

然後調用

Cufon.replace('#Mainmenu .menuitem', { fontFamily: 'DIN Eng', hover: true }); 

或者乾脆

Cufon('#Mainmenu .menuitem', { fontFamily: 'DIN Eng', hover: true }); 

的Cufon.now正在做的伎倆。欲瞭解更多信息,請閱讀documentation。在這個文檔中他們說在</body>之前使用它,但是我們發現這並不能解決所有閃爍的問題,而是在<body>之後。

+0

確實解決了閃爍問題!好的解決方案,thnx ;-) – Rob 2011-06-19 11:28:14

0

我沒有看到你的代碼有什麼問題,所以這只是一個黑暗中的鏡頭。要使用像#Mainmenu .menuitem(而不僅僅是h1或h2)的DOM選擇方法,Cufon需要像jQuery這樣的JavaScript庫。

是否有可能jQuery沒有在正確的時間加載,或者您已經將IE設置爲無緩存模式,迫使它在每次重新加載頁面時都重新下載jQuery?

+0

jQuery被加載,我很確定。但可能不是cufon之前,所以會檢查出來。它可以在錯誤的時刻加載嗎?關於緩存的好建議也從未想過。將檢查這一點,並回復給你。 – Rob 2011-04-16 09:28:55

+0

今天早上我檢查了網站。 jquery在cufon之前加載,所以我們確信這一點。緩存似乎也是正常的。任何其他想法? – Rob 2011-04-18 06:45:39