轮播

作者: 赵雅文 | 来源:发表于2017-10-11 09:04 被阅读0次

函数调用的的方法:


1,c()

2.c就是函数默认提供的方法、函数;

3.c.apply(),apply是改变 this(当前的值)如果c未定义,那么this的默认是window
1,全局变量(信号量)
2,排他模型
  (1)全变黄
 (2)当前显示的变红```

呼吸轮播图的思路:
1,透明底切换
animate(物体,{"opacity":1},1000)不透明;
animate(物体,{"opacity":0},1000)透明;

传统轮播图的js的步骤:

//得到元素
        var carousel = document.getElementById("carousel");
        var leftBtn = document.getElementById("leftBtn");
        var rightBtn = document.getElementById("rightBtn");
        var circles = document.getElementById("circles");
        var m_unit = document.getElementById("m_unit");
        var imageUL = m_unit.getElementsByTagName("ul")[0];
        var imageLis = imageUL.getElementsByTagName("li");
        var circlesLis = circles.getElementsByTagName("li");
        //克隆前我们得到个数
        var length = imageLis.length;
        //魔术的准备就是克隆第一张li,放到最后
        imageUL.appendChild(imageLis[0].cloneNode(true));
        //信号量```
        var idx = 0;```
        //自动轮播```
        var timer = setInterval(rightBtnHandler,options.interval);```
        //鼠标进入停止,离开继续
    carousel.onmouseover = function(){
        clearInterval(timer);
    }
    carousel.onmouseout = function(){
        timer = setInterval(rightBtnHandler,options.interval);
    }
        //监听

        rightBtn.onclick = rightBtnHandler;

        //右按钮的事件处理函数

        function rightBtnHandler(){

            //函数截流

            if(m_unit.isanimated) return;

            //信号量的变化

            idx++;

            //改变小圆点

            changeCircles();

            //运动机构的移动

            animate(m_unit,{"left" : -options.width * idx},options.animatetime,options.tween,function(){
                if(idx > length - 1){
                    idx = 0;
                    m_unit.style.left = "0px";
                }
            });
        }

        //监听

        leftBtn.onclick = function(){
            //函数截流

            if(m_unit.isanimated) return;
            //信号量的变化
            idx--;
            if(idx < 0){
                idx = length - 1;
                m_unit.style.left = -options.width * length + "px";
            }

            //改变小圆点

            changeCircles();
            
            animate(m_unit,{"left" : -options.width * idx},options.animatetime,options.tween);
        }

        //小圆点的监听

        for (var i = 0; i < circlesLis.length; i++) {
            circlesLis[i].index = i;
            circlesLis[i].onclick = function(){
                //信号量就是自己的序号
                idx = this.index;
                //拉动
                animate(m_unit,{"left" : -options.width * idx},options.animatetime,options.tween);
                //改变小圆点
                changeCircles();
            }
        }
        //根据信号量设置小圆点
    function changeCircles(){
        //idx可能是5,但是我们的小圆点下标最大是4,所以用n过渡一下:
        var n = idx > length - 1 ? 0 : idx;
        //排他
        for (var i = 0; i < circlesLis.length; i++) {
            circlesLis[i].className = "";
        }
        circlesLis[n].className = "cur";
    }
</script>
间隙轮播:

// 测试下是否会提交!
        //得到所有元素
    var ul = document.getElementsByTagName("ul")[0];
    var lis = document.getElementsByTagName("li");
    var length = lis.length;
    //复制所有li,追加到ul里
    ul.innerHTML += ul.innerHTML;
    //信号量
    var idx = 0;
    //模拟右按钮的业务
    function move(){
        idx++;
        // ul -> elem
        //  callback   elem -> this
        //  ul -> this
        animate(ul,{"top":-40 * idx},800,function(){
            if(idx > length - 1){
                idx = 0;
                this.style.top = "0px";
            }
        });
    }
```
    //调用动画函数的间隔时间,要远大于动画运行时间
    //这时就给人感觉一个间歇的过程
        setInterval(move, 1800);
        
    </script>

相关文章

  • 无标题文章

    轮播图分为:传统轮播图、间歇轮播图、呼吸轮播图、无缝滚动轮播图等。它们各具特色,各有用处。 1.传统轮播图 第一步...

  • 项目-轮播图

    整个轮播图分为三部分:轮播指标、轮播项目及轮播导航。用boostrap实现轮播图要比用js、jQuery方便的多,...

  • 轮播图

    轮播图分为:传统轮播图、间歇轮播图、呼吸轮播图、无缝滚动轮播图等。 1.传统轮播图 第一步,得到元素 第二步,设置...

  • jQuery传统轮播、三位置轮播、呼吸轮播

    一、传统轮播 二、三位置轮播 三、呼吸轮播

  • 轮播图的实现

    1、轮播图的协议 2、轮播视图:SMCarouselView 3、轮播视图的cell

  • 个人博客—轮播器

    个人博客—轮播器 轮播器自动轮播,每张图片淡入淡出 控制按钮和图片描述跟随图片轮播 鼠标悬停图片上方则停止轮播,滑...

  • fusion轮播

    fusion轮播 【轮播1标题】复仇者联盟4【轮播1标题】 【轮播1图片网址】http://img04.sogou...

  • day7_作业

    轮播图1 轮播图2

  • 轮播

    轮播: UIScrollview轮播UICollectionView轮播 实现步骤: (1)添加并设置定时器(2)...

  • [iOS]定制性强的广告轮播图--SCAdView

    @[无限轮播图] @[3D轮播图] @[广告轮播图] SCAdView Statement If my code ...

网友评论

      本文标题:轮播

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