Javascript работает более одного раза, когда он не предназначен для

0

У меня возникли проблемы с тем, чтобы этот запуск выполнялся один раз, я не уверен, что я делаю неправильно, так как раньше я добавил эффект высоты прокрутки, который работал нормально.

$(window).scroll(function() {
    var y_scroll_pos = window.pageYOffset;
    var scroll_pos_test = 450;

 if(y_scroll_pos > scroll_pos_test) { 


 $('#coins').lazylinepainter( 
 {
    "svgData": pathObj,
    "strokeWidth": 4,
    "strokeColor": "#8E9CCD"
}).lazylinepainter('paint'); 

}
  • 5
    может потому что событие прокрутки срабатывает несколько раз?
  • 2
    Когда вы прокручиваете, событие прокрутки обычно запускается несколько раз.
Показать ещё 5 комментариев
Теги:

1 ответ

1

Джон Ресиг имеет сообщение в блоге, в котором описывается, как правильно обрабатывать событие прокрутки, которое запускается несколько раз: http://ejohn.org/blog/learning-from-twitter/

Короче говоря, вам нужно периодически проверять, прокручивал ли пользователь и выполнял ли ваш код, если они это сделали. Ваш код должен выглядеть примерно так (взято из одного сообщения в блоге):

var outerPane = $details.find(".details-pane-outer"),
    didScroll = false;

$(window).scroll(function() {
    didScroll = true;
});

setInterval(function() {
    if ( didScroll ) {
        didScroll = false;
        // Check your page position and then
        // Load in more results
    }
}, 250);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню