【发布时间】:2015-04-27 16:30:05
【问题描述】:
我在我的页面上使用光滑的轮播http://kenwheeler.github.io/slick/,现在我需要在其中添加带有自动播放功能的视频。
我使用此代码
HTML
<div class="main-slider" id="main-slider">
<div>
<div class="video-wrapper">
<video autoplay loop class="pageBackground-video">
<source src="/Content/video/332145276.mp4" type="video/mp4">
</video>
</div>
</div>
<div>
<div class="video-wrapper">
<video autoplay loop class="pageBackground-video">
<source src="/Content/video/332145276.mp4" type="video/mp4">
</video>
</div>
</div>
</div>
和脚本
$('#main-slider').slick({
slidesToShow: 1,
slidesToScroll: 1,
autoplay: true,
autoplaySpeed: 30000,
dots: true,
infinite: true,
adaptiveHeight: true,
arrows: false
});
但自动播放不起作用。有没有办法让自动播放工作?
更新 我尝试使用
$('#main-slider').on('afterChange', function(event, slick, currentSlide, nextSlide){
var video = currentSlide.children('video').get(0).play();
});
但我收到一个错误Uncaught TypeError: currentSlide.children is not a function,因为currentSlide 它只是一个数字(0,1 等)。如何获取当前元素?
upd2我使用了这段代码,它可以工作
$('#main-slider').on('afterChange', function(event, slick, currentSlide, nextSlide){
$('#main-slider .slick-slide').find('video').get(0).pause();
var video = $('#main-slider .slick-active').find('video').get(0).play();
});
但现在自动播放适用于所有视频,但仅在第一次巧妙更改之后。如何使其仅在页面加载后适用于第一个视频。
upd3我用过这段代码
var video = $('#main-slider .slick-active').find('video').get(0).play();
$('#main-slider').on('afterChange', function(event, slick, currentSlide, nextSlide){
$('#main-slider .slick-slide').find('video').get(0).pause();
var video = $('#main-slider .slick-active').find('video').get(0).play();
});
现在一切都按我的意愿工作,但我担心我的代码很难看(
【问题讨论】:
-
您希望在页面加载时播放所有视频还是只播放中间的视频?
-
只有一个在中心。我现在正在阅读有关使用
afterChange的信息,但不明白如何在我的情况下使用它。 -
以下帖子对您有帮助吗? stackoverflow.com/questions/31521763/…
标签: javascript html slick.js