在有人单击元素后停止滚动处理程序的运行

时间:2016-08-28 03:51:47

标签: javascript jquery

好的,当有人滚动到视频时,它会启动,当有人滚动远离视频时,它会停止使用加载重新启动视频并显示海报。

我遇到的问题是,当有人点击暂停视频时,我不希望此功能运行。滚动处理程序控制它会很烦人。

jQuery(window).load(function(){
        jQuery(window).scroll(function(){
            playvideo();
        });
    });
    var playvideo = function(){
        var scrollTop = jQuery(window).scrollTop()+jQuery(window).height();
        var elem='.video';
        var video = document.getElementById('video-background');
        var elheight = jQuery(elem).height();
        if(scrollTop >= jQuery(elem).offset().top+elheight){
            //fade out the video play button and start the video
            $j('.video-caption-wrapper').fadeOut("Fast",function() {video.play();});
        }else{
            // fade in the play button and reload the video
            $j('.video-caption-wrapper').fadeIn("Fast",function() {video.load()});

        }
    }
$j('#video-background').click(function(event) {
    //when the video is clicked pause it and unbind scrolling
    if (this.paused == false) {
        this.pause();
        $j(window).off("scroll",playvideo);
    } else {
        this.play();  
    }
});

1 个答案:

答案 0 :(得分:0)

此:

jQuery(window).load(function(){
    jQuery(window).scroll(function(){
        playvideo();
    });
});

应该是:

jQuery(window).load(function(){
    jQuery(window).scroll(playvideo);
});

这将允许您在删除playvideo侦听器时引用scroll函数。现在,当您从未添加playvideo作为监听器时,尝试将其删除。您添加了一个匿名函数,该函数调用playvideo