2011-04-15 91 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

相关问题