在元素滚动上运行Jplayer进入视图

时间:2015-09-24 21:48:39

标签: jquery jplayer jquery.visible

我试图设置一个使用JPlayer播放的视频,在视频播放器上设置相当多的库存。我希望这只能在整个包含DIV的视图中开始播放。

我已经查找了当元素在视图中时用于触发事件的JQuery示例。在Stack上我发现的所有那些"滚动到视图"或"出现"。对我来说,这意味着(错误地可能)需要滚动来触发事件;如果用户的屏幕大到足以在页面加载时显示DIV,我希望即使不需要滚动也可以播放。

如果没有可见的条件声明,视频会完美运行,尽管屏幕外。我已尝试使用Appear插件但未成功(FB控制台中未报告任何错误),所以我显然做错了什么:



		$(document).ready(function() {
    			$("#jquery_jplayer_1").jPlayer({
				ready: function () {
					$(this).jPlayer("setMedia", {
						title: "Website Name",
						m4v: "video.mp4",
						preload: "auto"
						//poster: "Big_Buck_Bunny_Trailer_480x270.png"
					}).jPlayer("play");
				},
				swfPath: "jplayer",
				supplied: "m4v",
				size: {
					width: "600px",
					height: "338px",
					cssClass: "jp-video-360p"
				},
				useStateClassSkin: true,
				autoBlur: false,
				keyEnabled: true
			});	

    					<div id="jp_container_1" class="jp-video jp-video-360p" role="application" aria-label="media player">
						<div class="jp-type-single">
							<div id="jquery_jplayer_1" class="jp-jplayer"></div>
							<div class="jp-gui">
								<div class="jp-video-play">
									<button class="jp-video-play-icon" role="button" tabindex="0">play</button>
								</div>
							</div>
							<div class="jp-no-solution">
								<span>Update Required</span>
								To play the media you will need to either update your browser to a recent version or update your <a href="http://get.adobe.com/flashplayer/" target="_blank">Flash plugin</a>.
							</div>
						</div>
					</div>	


	<script src="js/jquery.min.js"></script>
	<script src="js/jquery.appear.js"></script>
	<script type="text/javascript" src="jplayer/jquery.jplayer.min.js"></script>
&#13;
&#13;
&#13;

我尝试在jPlayer函数周围添加if语句: if ($('#jquery_jplayer_1').visible(true)) { ..... } - 对我不起作用。

而且出现了插件:

        $('#jquery_jplayer_1').appear(function() {
            .....
        });

但我没有到达那里。任何有关如何使用预可见或滚动可见的JPlayer实例的指针都会在您看到它时开始播放?

1 个答案:

答案 0 :(得分:1)

这就是我要做的:

$(document).ready(function() {
    $("#jquery_jplayer_1").jPlayer({
        ready: function () {
            $(this).jPlayer("setMedia", {
                title: "Website Name",
                m4v: "video.mp4",
                preload: "auto"
            });
            playIfVisible();
        },
        swfPath: "jplayer",
        supplied: "m4v",
        size: {
            width: "600px",
            height: "338px",
            cssClass: "jp-video-360p"
        },
        useStateClassSkin: true,
        autoBlur: false,
        keyEnabled: true
    });
    function playIfVisible(){
        if($(window).scrollTop() + $(window).height() >= $("#jquery_jplayer_1").offset().top){
            $("#jquery_jplayer_1").jPlayer("play");
        }
    }
    $(document).scroll(function(){
        if($("#jquery_jplayer_1").data().jPlayer.status.paused){
            playIfVisible($("#jquery_jplayer_1"));
        }
    });
});

如果播放器已暂停且当前屏幕处于暂停状态,则会检查每个滚动事件。请注意,我还删除了.jPlayer("play")以阻止自动播放。