当 FlexSlider 幻灯片不在视图中时停止播放 YouTube 视频
Stop YouTube Video from Playing when FlexSlider Slide is out of view
我正在尝试将一些 YouTube 嵌入式视频放入 FlexSlider 轮播/滑块中。我遇到的问题是如果看不到幻灯片,则停止播放视频。目前,如果您播放视频和 select 一个新视频,则上一个视频会继续播放。
预期:切换幻灯片时,停止视频。
实际:在更换幻灯片时,视频继续播放。
HTML:
<section class="videolist">
<div class="container">
<div id="slider" class="flexslider">
<ul class="slides">
<li>
<iframe width="560" height="315" src="https://www.youtube.com/embed/xcJtL7QggTI" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</li>
<li><iframe width="560" height="315" src="https://www.youtube.com/embed/a3ICNMQW7Ok" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</li>
<li> <iframe width="560" height="315" src="https://www.youtube.com/embed/S-thTTqefls" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> </li>
<li> <iframe width="560" height="315" src="https://www.youtube.com/embed/Bey4XXJAqS8" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> </li>
</ul>
</div>
<div id="carousel" class="flexslider">
<ul class="slides">
<li> <img src="https://quidsup.net/wallpaper/abstract/the-cube-1920x1080-wallpaper-5189.jpg" alt="This is the alt text of the video"> </li>
<li> <img src="https://www.setaswall.com/wp-content/uploads/2017/08/Spaceship-Background-20-1920x1080.jpg" alt="This is the alt text of the video"> </li>
<li> <img src="https://wallpapercave.com/wp/trlzN6b.jpg" alt="This is the alt text of the video"> </li>
<li> <img src="https://i.redd.it/vjcavsc1lcs11.jpg" alt="This is the alt text of the video"> </li>
</ul>
</div>
</div>
</section>
JS:
$(window).load(function() {
$('#carousel').flexslider({
animation: "slide",
controlNav: false,
animationLoop: false,
slideshow: false,
itemWidth: 210,
itemMargin: 5,
asNavFor: '#slider'
});
$('#slider').flexslider({
animation: "slide",
controlNav: false,
animationLoop: false,
slideshow: false,
sync: "#carousel"
});
});
我这里有一个代码笔YouTube FlexSlider Carousel | Codepen
有什么想法可以实现吗?
谢谢
求助,加上一些js搞定了
$(window).load(function() {
$('#carousel').flexslider({
animation: "slide",
controlNav: false,
animationLoop: false,
slideshow: false,
itemWidth: 210,
itemMargin: 5,
asNavFor: '#slider',
start: function() {
$('#carousel li').on('click', function(e){
stopVideos();
});
$('#carousel li').on('click', function(e){
stopVideos();
});
}
});
$('#slider').flexslider({
animation: "slide",
controlNav: false,
animationLoop: false,
slideshow: false,
sync: "#carousel",
start: function() {
$('.flex-next').on('click', function(e){
stopVideos();
});
$('.flex-prev').on('click', function(e){
stopVideos();
});
}
});
});
function stopVideos() {
$('.iframe-vid').each(function() {
this.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*')
});
}
我正在尝试将一些 YouTube 嵌入式视频放入 FlexSlider 轮播/滑块中。我遇到的问题是如果看不到幻灯片,则停止播放视频。目前,如果您播放视频和 select 一个新视频,则上一个视频会继续播放。
预期:切换幻灯片时,停止视频。 实际:在更换幻灯片时,视频继续播放。
HTML:
<section class="videolist">
<div class="container">
<div id="slider" class="flexslider">
<ul class="slides">
<li>
<iframe width="560" height="315" src="https://www.youtube.com/embed/xcJtL7QggTI" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</li>
<li><iframe width="560" height="315" src="https://www.youtube.com/embed/a3ICNMQW7Ok" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</li>
<li> <iframe width="560" height="315" src="https://www.youtube.com/embed/S-thTTqefls" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> </li>
<li> <iframe width="560" height="315" src="https://www.youtube.com/embed/Bey4XXJAqS8" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> </li>
</ul>
</div>
<div id="carousel" class="flexslider">
<ul class="slides">
<li> <img src="https://quidsup.net/wallpaper/abstract/the-cube-1920x1080-wallpaper-5189.jpg" alt="This is the alt text of the video"> </li>
<li> <img src="https://www.setaswall.com/wp-content/uploads/2017/08/Spaceship-Background-20-1920x1080.jpg" alt="This is the alt text of the video"> </li>
<li> <img src="https://wallpapercave.com/wp/trlzN6b.jpg" alt="This is the alt text of the video"> </li>
<li> <img src="https://i.redd.it/vjcavsc1lcs11.jpg" alt="This is the alt text of the video"> </li>
</ul>
</div>
</div>
</section>
JS:
$(window).load(function() {
$('#carousel').flexslider({
animation: "slide",
controlNav: false,
animationLoop: false,
slideshow: false,
itemWidth: 210,
itemMargin: 5,
asNavFor: '#slider'
});
$('#slider').flexslider({
animation: "slide",
controlNav: false,
animationLoop: false,
slideshow: false,
sync: "#carousel"
});
});
我这里有一个代码笔YouTube FlexSlider Carousel | Codepen
有什么想法可以实现吗?
谢谢
求助,加上一些js搞定了
$(window).load(function() {
$('#carousel').flexslider({
animation: "slide",
controlNav: false,
animationLoop: false,
slideshow: false,
itemWidth: 210,
itemMargin: 5,
asNavFor: '#slider',
start: function() {
$('#carousel li').on('click', function(e){
stopVideos();
});
$('#carousel li').on('click', function(e){
stopVideos();
});
}
});
$('#slider').flexslider({
animation: "slide",
controlNav: false,
animationLoop: false,
slideshow: false,
sync: "#carousel",
start: function() {
$('.flex-next').on('click', function(e){
stopVideos();
});
$('.flex-prev').on('click', function(e){
stopVideos();
});
}
});
});
function stopVideos() {
$('.iframe-vid').each(function() {
this.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*')
});
}