2013-02-22 3 views
0

Этот плагин onscreen предназначен для добавления классных имен только к элементам, когда они находятся в пределах области просмотра, однако, похоже, это добавление имен классов, как только страница загружается, что не означает произойдет.Загрузка плагинов на экране в именах классов в неподходящее время

$(function() { 
    setInterval(function() { 
    $("#star").filter(":onScreen").addClass('animated bounceInRight'); 
    }, 0)        
}) 

Я использую его в этом плагине, который является книга эффект плагин, и я думаю, что он конфликтует с Экранные каким-то образом: http://pastebin.com/UmyJ6zBW Этот плагин требует различных разделов на одной странице для его работы. Onscreen работает, когда используется в первом разделе, но ломается, когда в других, которые фактически не отображаются. Как это исправить?

+0

В этом пастебине много кода. Вы считали, что выделение проблемы на небольшой раздел кода и создание [jsFiddle] (http://jsfiddle.net), который демонстрирует проблему? –

+0

Я могу попробовать, но я не знаю, смогу ли я изолировать правильный код или нет. – egr103

+0

setInterval (..., 0) !!! Ты уверен? –

ответ

0

Вы можете сделать одну из трех вещей.

  1. Не беспокойтесь. В общем, вам не нужно беспокоиться о стиле элементов, которые не видны.
  2. Используйте setInterval(), но уменьшите интервал до минимально допустимого значения, но не менее примерно 20 мс.
  3. [предпочтительно] Установите обработчик событий, который срабатывает в ответ на все, что заставляет элемент #star перемещаться вкл/выкл.

В третьем подходе:

  • JQuery анимации обеспечивают для step обратного вызова, который выстреливает, как каждый шаг анимации выполняется.
  • Поскольку прокрутка документа также приведет к появлению/отсутствию элементов, вы, вероятно, также захотите обработать scroll.

С осторожностью вы должны иметь возможность написать одну функцию и использовать ее для обеих целей.

Смежные вопросы