Как использовать дроссель из underscore.js

Я хочу использовать throttle из underscore.js, но не знаю, как это реализовать в мой код.

<script type="text/javascript"> 
    $(document).ready(function() {
        /* Scroll event handler */
        $(window).bind('scroll',function(e){
            parallaxScroll();
        });
    }); 

    /* Scroll the background layers */
    function parallaxScroll(){
        var scrolled = $(window).scrollTop();
        $('header').css('top',(0+(scrolled*1))+'px');
        $('#balken0').css('top',(-600+(scrolled*1))+'px');
        $('#balken1').css('top',(-1465+(scrolled*1))+'px');
        $('#balken2').css('top',(-2320+(scrolled*1))+'px');
    }
</script>

Заранее спасибо!


person Just Kidding    schedule 08.01.2013    source источник
comment
я очень новичок в jquery: D   -  person Just Kidding    schedule 08.01.2013
comment
Что ж, очень хорошо, что вы знаете, что делает throttle.   -  person undefined    schedule 08.01.2013
comment
Хорошо, код работает, но я не хочу, чтобы #balken вообще не двигался! моя проблема в том, что в firefox он отлично работает, а в сафари нет!   -  person Just Kidding    schedule 08.01.2013
comment
@JustKidding см. принятый ответ. другое"> stackoverflow.com/questions/8907373/   -  person Jai    schedule 08.01.2013


Ответы (1)


Вы можете добиться того же результата, используя таймер. Нет смысла включать целую библиотеку для одной функции IMO.

Попробуй это:

$(document).ready(function() {
    var timer;

    /* Scroll event handler */
    $(window).bind('scroll', function(e) {
        clearTimeout(timer);
        timer = setTimeout(parallaxScroll, 100);
    });
}); 

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

person Rory McCrossan    schedule 08.01.2013
comment
это сработало! но я уже упоминал, что это не работает для меня! я хочу, чтобы #балкен вообще не двигался - person Just Kidding; 08.01.2013
comment
this worked! but i already mentioned that it doesn't work for me! Что? это не имеет смысла. - person Rory McCrossan; 08.01.2013
comment
см. мой комментарий под моим вопросом! Хорошо, код работает, но я не хочу, чтобы #balken вообще не двигался! моя проблема в том, что в firefox он отлично работает, а в сафари нет! - person Just Kidding; 08.01.2013