阻止每个滚动滚动

时间:2017-05-03 11:18:49

标签: javascript jquery if-statement scroll

每次触发滚动时,我都会尝试使用标志来阻止滚动触发功能。 $(window).unbind("scroll");因为我正在使用.scroll()其他功能。那么为什么不阻止每次触发功能呢?

JS:

$(window).scroll(function() {
        $("iframe").each( function() {
            $this = $(this);
            _src = $this.attr('src');
            _ID = $this.attr('id');
            _yPos = $(window).scrollTop();
            _thisHT = $this.height();
            _thisTop = $this.offset().top;
            _thisBottom = _thisTop + _thisHT;
            _Play = true;

            if (_Play) {
                if( _yPos > _thisTop*0.5 && _yPos < _thisBottom) {       
                    $this.attr('src', _src + '&autoplay=1');
                    _Play=false;

                //$(window).unbind("scroll");
                } else {
                    $this.attr('src', _src);

                }
            }
        }); 
    });

1 个答案:

答案 0 :(得分:0)

所以我发现了一种闷热,这很明显。我不得不将_play移到$(window).scroll;之外然后我使用增量而不是真/假(虽然这可能有效)

_play = '0';

 $(window).scroll(function() {


    $("iframe").each( function() {
        $this = $(this);
        _src = $this.attr('src');
        _ID = $this.attr('id');
        _yPos = $(window).scrollTop();
        _thisHT = $this.height();
        _thisTop = $this.offset().top;
        _thisBottom = _thisTop + _thisHT;
        if (_play === '0') {
            if( _yPos > _thisTop*0.5 && _yPos < _thisBottom) {       
                _play = '1';
                $this.attr('src', _src + '&autoplay=1');





            //$(window).unbind("scroll");
            } else {
                $this.attr('src', _src);

            }
        }
    }); 
});