jQuery 实现幻灯片效果

  • 格式:docx
  • 大小:8.31 KB
  • 文档页数:5

实现方法
第一步:首先写好静态代码,
第二步:将图片通过定位,重叠的放到一起
第三布:页码和图片的数量是对应的
通过jQuery动态的实现页码数量;
var slideNum =$('#slideWrap ul.slide>li').length;
var slideNumHtml='<ul class="num">';
for(var i=1;i<=slideNum;i++){
slideNumHtml+='<li>'+i+'</li>';
}
slideNumHtml+='</ul>';
$('#slideWrap ul.slide').after(slideNumHtml);
第四步:显示图片和高亮页码号的函数
第五步:绑定事件处理函数,实现动态的显示
需要解决页码重复显示的问题,办法:在现实下一张图片的时候提前释放已经显示的图片和页码,用filter过滤,清楚掉原有的效果和属性
end()取得是一个结果集
再进行正常的显示
fadeIn/fadeOut淡入淡出效果
解决重复进行一个mouseenter事件,重复执行的问题
用流程控制语句进行判断,然后进行消除
自动幻灯效果,使用人工绑定事件处理函数进行设定
图片上发生mouseenter事件的时候,停止自动动播放幻灯
页码上发生mouseenter事件的时候,停止自动动播放幻灯
var isRun=true;
var slideNum =$('#slideWrap ul.slide>li').length;
var slideNumHtml='<ul class="num">';
for(var i=1;i<=slideNum;i++){
slideNumHtml+='<li>'+i+'</li>';
}
slideNumHtml+='</ul>';
$('#slideWrap ul.slide').after(slideNumHtml);
function slideShow (num){
//判断即将发生的事件是否在当前对象上,如果是,就终止
if(num==$('#slideWrap ul.num>li').index($('#slideWrap ul.num>li.current')) ){
return null;
}
$('#slideWrap ul.slide>li')
.finish() //终止没有完成的动画
.filter(':visible') //过滤选中当前显示的元素
.fadeOut().css({'z-index':0}) //通过动画效果淡出
.end() //返回上一个结果集
.eq(num) //选中发生事件的的对象
.fadeIn().css({'z-index':5}); ///设置动画效果
$('#slideWrap ul.num>li')
.filter('.current') //过滤选中当前显示的元素
.removeClass('current') //去除css样式
.end() //返回上一个结果集
.eq(num) //选中发生事件的的对象
.addClass('current'); //设置CSS样式
}
slideShow(0);
$('#slideWrap ul.num>li').on('mouseenter.trigger',function(){
slideShow($('#slideWrap ul.num>li').index(this));
});
$('#slideWrap ul.num>li,#slideWrap ul.slide').hover(function(){
isRun=false;
},function(){
isRun=true;
})
setInterval(function(){
if (isRun) {
if($('#slideWrap ul.num>li.current').next().length==0){
$('#slideWrap ul.num>li').eq(0).triggerHandler('mouseenter.trigger'); }else{
$('#slideWrap ul.num>li.current').next().triggerHandler('mouseenter.trig ger');
}
}
},1500);。