轮播图

第一步先获取dom节点:


//得到carousel

var carousel = document.getElementById("carousel");

//得到li

var lis = document.getElementById("imageslist").getElementsByTagName("li");

//得到按钮

var leftBtn = document.getElementById("leftBtn");

var rightBtn = document.getElementById("rightBtn");

//得到小圆点

var circlesLi = document.getElementById("circles").getElementsByTagName("li");

第二步做图片的运动

//图片数量
        var imgLength = lis.length;
        //图片宽度
        var width = 560;
        //滚动速度
        var animatetime = 600;
        //缓冲描述
        var tween = "Linear";
        //间隔时间
        var interval = 2000;
         

第三步按钮监听

var idx = 0;
        
        //右按钮的监听
        rightBtn.onclick = function(){
            //函数截流
            if(lis[idx].isanimated) return;

            //原来的信号量的图片淡出
            animate(lis[idx],{"opacity" : 0},animatetime,function(){
                //信号量改变
                idx++;
                if(idx > imgLength - 1){
                    idx = 0;
                }
                //新信号量的图片淡入
                animate(lis[idx],{"opacity" : 1},animatetime);
                changeCircle();
            });         
        }
        leftBtn.onclick = function(){
            //函数截流
            if(lis[idx].isanimated) return;

            //原来的信号量的图片淡出
            animate(lis[idx],{"opacity" : 0},1000);
            //信号量改变
            idx--;
            if(idx < 0){
                idx = imgLength - 1;
            }
            //新信号量的图片淡入
            animate(lis[idx],{"opacity" : 1},1000);

            changeCircle();
        }

第四步小圆点监听

//批量添加小圆点的监听
        for(var i = 0 ; i <= imgLength - 1 ; i++){
            circlesLi[i].index = i; //先编号
            circlesLi[i].onclick = function(){
                //截流
                if(lis[idx].isanimated) return;
                
                //原来的信号量的图片淡出
                animate(lis[idx],{"opacity" : 0},1000);
                //信号量改变
                idx = this.index;
                //新信号量的图片淡入
                animate(lis[idx],{"opacity" : 1},1000);

                changeCircle();
            }
        }
        //更换小圆点函数
        function changeCircle(){
            //去掉所有小圆点的cur
            for (var i = 0; i < circlesLi.length; i++) {
                circlesLi[i].className = "";
            }
            //第信号量这个小圆点加cur
            circlesLi[idx].className = "cur";
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 效果图 一、ViewPager填充图片 1.1 布局中申明 由于是显示广告条,所以高度要固定住 1.2 代码中设置...
    笑说余生阅读 9,894评论 9 44
  • 轮播图的html CSS 第一步、获取元素(DOM操作) 第二步、创建改变图片透明度的函数 rightBtnHan...
    风之伤_3eed阅读 531评论 0 0
  • 备注:最近工作需要,要用react实现旋转木马的轮播图效果,在网上查了查没有相似的案例,只有用react实现的简单...
    随遇而安_2750阅读 3,499评论 1 9
  • 70天时间真的就这么过去了,真没想到自己会一直坚持这么久。连续这么多天也写了几万字,也有得到了几个评论和喜欢。每次...
    喂了自由阅读 191评论 0 1
  • 感赏已停一段时间,可有空还是去群里看看姐妹们的各种心得,受益了,谢谢姐妹们! 我说考察儿子一段时间,看是否再买ip...
    张怡妹阅读 169评论 0 0