Cufon вызывает задержку в Internet Explorer - PullRequest
0 голосов
/ 15 апреля 2011

Я использую внешний элемент управления для создания меню на веб-странице. Элемент управления поступает из системы 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 ]

1 голос
/ 24 мая 2011

Вы должны выполнить следующий код сразу после тега <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 делает свое дело. Для получения дополнительной информации прочитайте документацию . В этой документации они говорят использовать его до </body>, но мы обнаружили, что это не устраняет все проблемы с мерцанием, а сразу после <body>.

0 голосов
/ 15 апреля 2011

Я не вижу ничего плохого в вашем коде, так что это всего лишь выстрел в темноте.

Чтобы использовать методы выбора DOM, такие как #Mainmenu .menuitem (вместо просто h1 или h2), Cufon требуется библиотека javascript, такая как jQuery.

Возможно ли, что jQuery не загружается в нужное время или вы установили IE в режим без кэширования, заставляя его повторно загружать jQuery при каждой перезагрузке страницы?

...