美文网首页个人收藏
浅谈js写轮播图的思路与心得

浅谈js写轮播图的思路与心得

作者: 杨赛舟 | 来源:发表于2017-10-10 20:58 被阅读1393次

轮播图思路:

1 、 首先我们需要在开始时将我们锁需要的封装函数链接进来。
列如 <script type="text/javascript" src="animate-2.0.1.js"></script>
而且我们必须得得到所有需要用到的对象用 getElementById 、getElementsByTagName,然后把需要一个规范的命名。

var oDiv = document.getElementById("carousel")
var lBtn = document.getElementById("leftBtn")
var rBtn = document.getElementById("rightBtn")
var picDiv = document.getElementById("m_unit")
var picUl = picDiv.getElementsByTagName("ul")[0]
var picLi = picUl.getElementsByTagName("li")
var ydDiv = document.getElementById("circles")
var ydLi = ydDiv.getElementsByTagName("li")

2 、第二部我们创建一个定时器先让轮播图中所有图片的 li 动起来
右边点击函数跟定时器所运动的函数一个样,所以我们可以封装一个函数abc();他们是共用的;

var timer = setInterval(abc,options.interval)
        rBtn.onclick = abc;
        oDiv.onmouseover = function(){
            clearInterval(timer);
        }
        oDiv.onmouseout = function(){
            timer = setInterval(abc,options.interval);
        }

        function abc(){
            if(picDiv.isanimated) {
                return;
            }
            index++;
            change();
            animate(picDiv,{"left" : -options.width * index},options.animatetime,options.tween,function(){
                if(index > picLi.length - 1){
                    index = 0;
                    picDiv.style.left = "0px";
                }
            });
        }

3 、 写出左边点击按钮事件的函数,这样就如上abc();差不多只是修改一些东西就行了;

lBtn.onclick = function(){
          if(picDiv.isanimated) {
              return;
          }
          index--;
          if(index < 0){
              index = picLi.length - 1;
              picDiv.style.left = -options.width * picLi.length + "px";
          }
          change();
          animate(picDiv,{"left" : -options.width * index},options.animatetime,options.tween);
      }

4 、讲小圆点的样式改变封装成一个函数就是下面的chnage();
然后还得监听点击每个小圆点的事件,所以可以用for + onclick 讲每个小圆点点击事件给写出来。

for (var i = 0; i < ydLi.length; i++) {
            ydLi[i].xxx = i;
            ydLi[i].onclick = function(){
                index = this.xxx;
                animate(picDiv,{"left" : -options.width * index},options.animatetime,options.tween);
                change();
            }
        }

        function change(){
            var n = index > length - 1 ? 0 : index;
            for (var i = 0; i < ydLi.length; i++) {
                picLi[i].className = "";
            }
            picLi[n].className = "cur";
        }

难点:
1 、函数截留,当我们点击函数正在执行时,如果多次点击就会出现图片运动混乱的现象,这是我们需要用if(picDiv.isanimated) {return;},
2 、cloneNode()函数picUl.appendChild(picLi[0].cloneNode(true))

相关文章

  • 浅谈js写轮播图的思路与心得

    轮播图思路: 1 、 首先我们需要在开始时将我们锁需要的封装函数链接进来。列如 而且我们必须得得到所有需...

  • 实现轮播图

    实现轮播图 思路: 通过js来控制轮播的图片的样式,可以控制display:none or block 可以控制o...

  • 三种样式的轮播图

    一、100%比例轮播图 HTML代码 CSS样式 js代码 二、手动箭头轮播图 三、简易轮播图

  • 第五周学习内容

    焦点图轮播特效之原理、焦点图轮播样式之布局、焦点图轮播之箭头切换、焦点图轮播之无限滚动。 js简介、用法、输出。

  • 29 jQuery 做个轮播

    HTML、CSS、JS 内容、样式与行为分离 轮播的思路思路1:滚来滚去思路2:用局部画面骗用户 封装思路从 AP...

  • 纯CSS实现轮播图

    天天写前端的你,会自己写一个轮播图吗,而且不能用js哦,知道轮播图的原理吗? 今天我们要讲的是如何只用css实现轮...

  • 项目-轮播图

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

  • 轮播图

    轮播图01 html css js

  • 使用vue-awesome-swiper方法

    在main.js中引入轮播图插件 在基础组件中建立轮播图组件:

  • vue中swiper的使用(轮播失效)

    在使用vue写swiper轮播图的时候,有时会发生轮播图不生效的问题,这是因为页面中JS执行的顺序问题,这时swi...

网友评论

    本文标题:浅谈js写轮播图的思路与心得

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