【问题标题】:Cufon causing an delay in internet explorerCufon 导致 Internet Explorer 延迟
【发布时间】:2011-04-15 10:54:55
【问题描述】:

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

我们熟悉需要在需要更改字体的 html 元素之后直接调用 Cufon 的事实。这还有必要吗?或者我需要在某处调用 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>

【问题讨论】:

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


    【解决方案1】:

    您必须在&lt;body&gt; 标记之后执行以下代码。

    <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。在本文档中,他们说要在 &lt;/body&gt; 之前使用它,但我们发现这并不能解决所有闪烁问题,而是在 &lt;body&gt; 之后。

    【讨论】:

    • 确实解决了闪烁问题!很好的解决方案,谢谢 ;-)
    【解决方案2】:

    我看不出你的代码有什么问题,所以这只是在黑暗中拍摄。

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

    是否有可能是 jQuery 没有在正确的时间加载,或者您将 IE 设置为无缓存模式,迫使它在每次重新加载页面时重新下载 jQuery?

    【讨论】:

    • jQuery 已加载,我很确定。但也许不是在 cufon 之前,所以会检查一下。它会在错误的时刻加载吗?关于缓存的好提示,从没想过。将对此进行检查并回复您。
    • 我今天早上检查了网站。 jQuery 是在 cufon 之前加载的,所以我们对此很确定。缓存似乎也很正常。还有其他想法吗?
    猜你喜欢
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    相关资源
    最近更新 更多