Cufon导致Internet Explorer的延迟

时间:2011-04-15 10:54:56

标签: javascript asp.net html internet-explorer cufon

我正在使用外部渲染控件在网页上创建菜单。控件来自cms系统,无法修改。当调用Cufon.replace()来改变提供的菜单项的字体时,我们注意到IE8中的闪烁效果,就像有某种延迟一样。在FireFox 4和Chrome中,此效果不可见。我已经阅读了有关它的stackoverflow的其他主题,但似乎没有一个看起来像这个问题。它只会在将鼠标悬停在菜单项上时发生。

我们熟悉Cufon需要在需要更改字体的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>

2 个答案:

答案 0 :(得分: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>之后。

答案 1 :(得分:0)

我认为你的代码没有任何问题,所以这只是在黑暗中拍摄的。

要使用像#Mainmenu .menuitem(而不仅仅是h1或h2)这样的DOM选择方法,Cufon需要一个像jQuery这样的javascript库。

是否有可能在正确的时间加载jQuery,或者您已将IE设置为no-cache模式,每次重新加载页面时都强制它重新下载jQuery?