gpt4 book ai didi

jquery - 幻灯片更改时,光滑的 slider 会暂停 youtube 视频

转载 作者:行者123 更新时间:2023-11-28 21:42:15 25 4
gpt4 key购买 nike

我使用 Jquery Slick Slider 创建了一个图像 slider ,它也有 youtube 视频剪辑。当页面加载 youtube 视频设置为 slider 的第一张幻灯片时,它会自动播放并开始播放。我想,当我将 slider 框架更改为下一张幻灯片时,youtube 视频将停止播放。

我查看了其他 stackoverflow 答案,但找不到任何内容。

我试过了-

这是我的 div 结构-

<div id="mainSlider" class="box box-default">
<div class="sliderItem"><div class="playerID"><iframe width="100%" height="100%" frameborder="0" allowfullscreen="" src="https://www.youtube.com/embed/VIDEO_ID?rel=0&amp;autoplay=1&amp;version=3&amp;loop=1&amp;playlist=VIDEO_ID&amp;enablejsapi=1" id="player"></iframe></div></div>
<div class="sliderItem"><img src="" /></div>
<div class="sliderItem"><img src="" /></div>
<div class="sliderItem"><img src="" /></div>
</div>

我用的是 JS -

$("#mainSlider").slick({
dots: true,
autoplay: false,
autoplaySpeed: 7000,
speed: 500,
pauseOnHover: true,
responsive: [
{
breakpoint: 1025,
settings: {
arrows: true,
dots: false
}
}
]
})
.on('afterChange', function( e, slick, currentSlide ) {
$('.bumper').css('display', 'block');
playpausevideo($currentSlide.eq(e).data('youtubeplayer'), 'pause')
});

YouTube JS -

function onYouTubeIframeAPIReady(){ // this function is called automatically when Youtube API is loaded (see: https://developers.google.com/youtube/iframe_api_reference)
jQuery(function($){ // when DOM has loaded
var $contentdivs = $('.sliderItem').find('div.playerID')
$contentdivs.each(function(i){ // loop through the content divs
var $contentdiv = $(this)
var $youtubeframe = $contentdiv.find('iframe[src*="youtube.com"]:eq(0)') // find Youtube iframe within DIV, if it exists
if ($youtubeframe.length == 1){
var player = new YT.Player($youtubeframe.get(0), { // instantiate a new Youtube API player on each Youtube iframe (its DOM object)
events: {
'onReady': function(e){e.target._donecheck=true} // indicate when video has done loading
}
})
$contentdiv.data("youtubeplayer", player) // store Youtube API player inside contentdiv object
}
})
})
}

function playpausevideo(player, action){
if (player && player._donecheck === true){
if (action == "play")
player.playVideo()
else if (action == "pause")
player.pauseVideo()
}
<script src="http://www.youtube.com/iframe_api"></script>

此代码无效,youtube 视频不会停止,幻灯片切换时仍在播放。

有什么建议吗?

谢谢

最佳答案

添加序列的答案,即使页面上有多个 slider ,这也将允许 slider 起作用。

$('.mainSlider').on('beforeChange', function(event, slick, currentSlide, nextSlide){
var current = $(slick.$slides[currentSlide]);
current.html(current.html());
});

关于jquery - 幻灯片更改时,光滑的 slider 会暂停 youtube 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34349155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com