在修改网页的焦点图效果:当前焦点是视频的时候,暂停焦点图的自动轮播,当视频播放完成后再启用焦点图的自动轮播。查看代码发现该焦点图使用的是 SuperSlide.js 插件,这是一款存在时间挺长的 jquery 焦点图插件,但多年的更新,插件的参数还是不够丰富全面,一些效果实现起来会比较麻烦。不过庆幸的是 SuperSlide.js 插件有提供 startFun 和 endFun 函数。
温馨提示:以下代码适用于 SuperSlide 2.1+版本。
实现代码:
HTML代码
<div class="slides">
<div class="bd">
<ul>
<li>
<video id="video0" src="video.mp4" preload="auto" muted autoplay loop></video>
</li>
<li>
<img src="slides01.jpg" alt="焦点图01">
</li>
<li>
<img src="slides02.jpg" alt="焦点图02">
</li>
</ul>
</div>
<div class="hd">
<ul class="ul"></ul>
</div>
<a class="prev" href="javascript:void(0)"></a>
<a class="next" href="javascript:void(0)"></a>
<a class="playState" href="javascript:void(0)"></a>
</div>
jQuery代码
var playState = $(".slides .playState");
$(".slides").slide({
titCell: ".hd ul",
mainCell: ".bd ul", effect: "fold", autoPlay: true, interTime: 3000, delayTime: 1000, autoPage: true, trigger: "click", mouseOverStop:false,
startFun: function(i, c, slider, titCell, mainCell, targetCell, prevCell, nextCell){
if($(".slides .bd li").eq(i).find("video").length > 0){
if(!playState.hasClass("pauseState")){
playState.trigger("click");
}
var _video = document.getElementById('video'+i);
_video.play();
_video.loop = false;
_video.addEventListener('ended', function(){
if(playState.hasClass("pauseState")){
playState.trigger("click");
}
},false);
}
}
});
如果第一个焦点图是视频的时候,再在上面的代码下边添加以下代码
playState.trigger("click");
var _video0 = document.getElementById('video0');
_video0.loop = false;
_video0.addEventListener('ended', function(){
if(playState.hasClass("pauseState")){
playState.trigger("click");
}
},false);