百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>JS教程> 原生js实现焦点轮播图效果的教程
分享文章到:

原生js实现焦点轮播图效果的教程

发布时间:01/15 来源: 浏览: 关键词:
这篇文章介绍了原生js实现焦点轮播图效果的教程,有需要的同学可以参考一下

原生js焦点轮播图主要注意这几点:

1、前后按钮实现切换,同时注意辅助图

2、中间的button随着前后按钮对应切换,同时按button也能跳转到相应的index

3、间隔调用与无限轮播。

4、注意在动画时要停止按钮,或者说上一个动画完毕下一个动画才能执行

5、另外在切换图片的时候,底部的Button动画效果,是从底部开始往上升的,要用到transform:scale()和transform-origin:0 100%两个转换属性,代码如下

 

 代码如下

<!DOCTYPE html>

<html>

 <head>

 <metacharset="utf-8"/>

 <metaname="viewpoint"content="width=device-width,initial-scale=1,user-scalable="no">

 <title>20170101</title>

 <styletype="text/css">

 a{text-decoration:none;color:#3DBBF5;}

 .wrapper{width:750px;height:350px;background:#001032;margin:20px auto;text-align:center;box-shadow:0 0 12px 2px hsla(0,20%,30%,0.5);padding:10px 15px;position:relative;}

 .effect{position:relative;cursor:pointer;}

 .effect:hover{color:#02a0e9;}

 .effect:before{width:100%;display:inline-block !important;position:absolute;height:1px;background:#02a0e9;transition:all 0.4s ease-in-out;-webkit-transition:all 0.4s ease-in-out;-moz-transition:all 0.4s ease-in-out;transform:scale(0,1);content:'';bottom:-5px;left:0;}

 .effect:hover:before{transform:scale(1);-webkit-transform:scale(1);}

 #lunBo{margin-top:20px;overflow:hidden;height:300px;width:750px;position:relative;}

 #list{position:absolute;z-index:22;height:300px;width:5250px;}

 #list img{float:left;}

 #buttons { position: absolute; height: 20px; width: 150px; z-index: 99; bottom: 20px; left: 40%;}

    span { cursor: pointer; float: left; width: 10px; height: 5px; background: #333; margin-right: 10px;}

     .on { background: yellow;transition:all 0.4s ease-in-out;-webkit-transition:all 0.4s ease-in-out;-moz-transition:all 0.4s ease-in-out;transform:scale(1,4);-ms-transform:scale(1,4);-moz-transform:scale(1,4);-webkit-transform:scale(1,4);transform-origin:0% 0%;-webkit-transform-origin:0% 100%;-moz-transform-origin:0% 100%;}

  .arrow { cursor: pointer; display: none; line-height: 39px; text-align: center; font-size: 36px; font-weight: bold; width: 40px; height: 100px; line-height:100px;position: absolute; z-index: 92; top: 30%; background-color: RGBA(0,0,0,.3); color: #fff;}

    .arrow:hover { background-color: RGBA(0,0,0,.7);}

    #lunBo:hover .arrow { display: block;}

    #prev { left: 0px;}

    #next { right: 0px;}

 </style>

 </head>

 <body>

 <divclass="wrapper">

  <aclass="effect"href="#">2016完了,2017来了</a>

  <divid="lunBo">

  <divid="list"style="left:-750px;">

   <imgsrc="http://cdn.attach.qdfuns.com/notes/pics/201701/03/175856saeagzgsnwal15n5.jpg"alt=""/>

   <imgsrc="http://cdn.attach.qdfuns.com/notes/pics/201701/02/235009drzwcaxem2wfgmdc.jpg"alt=""/>

   <imgsrc="http://cdn.attach.qdfuns.com/notes/pics/201701/03/175856m1bhxxx1d8jfnblb.jpg"alt=""/>

   <imgsrc="http://cdn.attach.qdfuns.com/notes/pics/201701/03/175856z48mfrrr8u064rf6.jpg"alt=""/>

   <imgsrc="http://cdn.attach.qdfuns.com/notes/pics/201701/03/175856e95yze236lvq7y2a.jpg"alt=""/>

   <imgsrc="http://cdn.attach.qdfuns.com/notes/pics/201701/03/175856saeagzgsnwal15n5.jpg"alt=""/>

   <imgsrc="http://cdn.attach.qdfuns.com/notes/pics/201701/02/235009drzwcaxem2wfgmdc.jpg"alt=""/>

  </div>

  <divid="buttons">

   <spanindex="1"class="on"></span>

   <spanindex="2"></span>

   <spanindex="3"></span>

   <spanindex="4"></span>

   <spanindex="5"></span>

  </div>

  <ahref="javascript:;"id="prev"class="arrow"><</a>

  <ahref="javascript:;"id="next"class="arrow">></a>

  </div>

 </div>

 <script>

 window.onload = function(){

  var lunBo = document.getElementById('lunBo');

  var list = document.getElementById('list');

  var buttons = document.getElementById('buttons').getElementsByTagName('span');

  //console.log(buttons);

  var prev = document.getElementById('prev');

      var next = document.getElementById('next');

  var index = 1;

  var animated = false;

  var interval = 3000;

  var timer;

  //显示按钮的索引

  function showButton(){

  for(var i = 0 ; i <buttons.length; i++){

   if( buttons[i].className == 'on' ){

   buttons[i].className='';

   break;

   };

  };

  buttons[index - 1].className='on';

  };

  function play(){

  timer=setTimeout(function () {

          next.onclick();

          play();

        }, interval);

  };

  function stop(){

  clearTimeout(timer);

  };

  //向前按钮

  next.onclick=function() {

        if (animated) {

          return;

        }

        if (index == 5) {

          index=1;

        }

        else {

          index += 1;

        }

        animate(-750);

        showButton();

      };

      prev.onclick=function() {

        if (animated) {

          return;

        }

        if (index == 1) {

          index=5;

        }

        else {

          index-=1;

        }

        animate(750);

        showButton();

      };

  //parseInt()转换为纯数值

  function animate(offset){

  animated=true;

  varnewLeft=parseInt(list.style.left) + offset; //目标值

  vartime=300; //位移总时间为300

  varinterval=10; //

  varspeed=offset/(Math.floor(time/interval)); //每次位移量

  function go(){

  if( (speed < 0 && parseInt(list.style.left) > newLeft) || ( speed > 0 && parseInt(list.style.left) <newLeft) ){

   list.style.left=parseInt(list.style.left) + speed + 'px';

    setTimeout(go,interval);

  }else{

   animated=false;

   list.style.left=newLeft+ 'px';  //现在的位移

   if( newLeft > -750){           //假的辅助图

   list.style.left = -3750 + 'px';

   }

   if( newLeft < -3750){

   list.style.left = -750 + 'px';

   }

  }

  };

  go(); 

  };

  //小按钮

  for(var i=0;i <buttons.length;i++){

  buttons[i].onclick=function(){

 

  if(this.className == 'on'){

   return;

  };

   varmyIndex=parseInt(this.getAttribute('index'));

   var offset = -750 * (myIndex - index);

 

   animate(offset);

          index=myIndex;

          showButton();

  }

  }

  lunBo.onmouseout=play;

  lunBo.onmouseover=stop;

  play();

 }

 </script>

 </body>

</html>

 

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有2人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板