美文网首页
jquery实现淡入淡出轮播效果

jquery实现淡入淡出轮播效果

作者: 橙柒冃 | 来源:发表于2019-09-29 09:07 被阅读0次

很简单的一个例子,总共不到50行代码,只是自己在做项目的时候通过一次又一次的修改优化和填坑,发现还是有很多容易忽略之处,于是便想着分享出来。

首先,根据banner图数量,动态显示分页器的数量,这里万不可写死,否则重复利用率将会极低


var index = 0;

var imgLen = $(".banner-ul > li").length;

$(".banner-ul > li:eq(0)").show()

for(var i = 0;i < imgLen; i++){

    $(".banner-dot").append("<span></span>");  //根据轮播图片的数量自动显示分页器数量

    $(".banner-dot > span").eq(0).addClass("actived");

}

其次,有些时候会出现只有一张banner图的情况,这种情况下我们就让图片静止没有任何动态效果


if(imgLen > 1){ //当轮播图片数大于1的时候,才显示轮播

    //todo

} else{

    $(".banner-dot,.arrow-btn").hide();  //只有1副的时候不显示左右箭头和分页器,不作轮播动画

}

主体部分功能实现:

1、根据banner图的index值得来封装一个公共的轮播效果,接下来所有功能都是要调用这个函数


var selectImg = function(index){

        $(".banner-ul > li").eq(index).fadeIn(1000).siblings().fadeOut(1000);

        $(".banner-dot > span").eq(index).addClass("actived").siblings().removeClass("actived");

    }

2、分页器点击效果,把每个分页器的index值(即$(this).index())赋给参数index


$(".banner-dot > span").click(function(){

        index = $(this).index()

        selectImg(index)

    });

3、左右箭头的点击切换效果,区别在于,分别为index++和index--


var transformRight = function(){

        if(index === imgLen - 1){

            index = 0;

        } else{

            index++;

        }

        selectImg(index);

    };

    var transformLeft = function(){

        if(index === 0){

            index = imgLen - 1;

        } else{

            index--;

        }

        selectImg(index);   

    }

$(".index-banner").children(".right").click(function(){

        transformRight();   

    });

    $(".index-banner").children(".left").click(function(){ 

        transformLeft();   

    });

4、最后一步,可根据需要实现自动播放,播放的函数为transformRight(),即向右点击播放效果


var timer = setInterval(transformRight,5000);

    $(".index-banner").mouseover(function(){

        clearInterval(timer)

    }).mouseout(function(){

        timer = setInterval(transformRight,5000);

    });

这样,一个最简单的轮播图播放效果就做好了

html和css中没有需要特别注意的,只需将每个图片设为隐藏,然后再html中显示第一张图片即可


.banner-ul > li{

    height: 500px;

    width: 100%;

    position: absolute;

    overflow: hidden;

    background-repeat: no-repeat;

    background-position: center;

    background-size: auto 100%;

    display: none;

}

相关文章

网友评论

      本文标题:jquery实现淡入淡出轮播效果

      本文链接:https://www.haomeiwen.com/subject/emnxpctx.html