首页 > 编程 > JavaScript > 正文

完美的js图片轮换效果

2019-11-19 17:43:48
字体:
来源:转载
供稿:网友

本文实例为大家分享了js轮播图焦点的具体代码,供大家参考,具体内容如下

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>轮播图焦点</title>  <meta content="还是有地点小瑕疵,1左转变4,4右转变1的时候,图片切换有空白,换下动画模式应该可以?">  <style>    *{      padding: 0;      margin: 0;    }    ul{      list-style: none;    }    .scroll{      width: 300px;      height: 200px;      border: 1px solid red;      margin: 100px auto;      position: relative;      overflow: hidden;    }    .scroll ul.imgUl{      width: 400%;      position: absolute;      top: 0;      left: 0;    }    .scroll ul.imgUl li{      float: left;    }    .scroll .imgUl img{      vertical-align: middle; /* 消除图片间3px的间距 */    }    .scroll ul.focus{      position: absolute;      left: 50%;      bottom: 10px;      margin-left: -80px;    }    .scroll ul.focus li{      width: 20px;      height: 20px;      padding: 5px;      text-align: center;      margin-right: 10px;      border: 2px solid yellow;      float: left;      color: red;      font-weight: 700;      background-color: #333;      color: white;    }    .scroll ul.focus li.current{      background-color: deeppink;    }    .scroll .arrow{      width: 100%;      position: absolute;      top: 50%;      left: 0;      margin-top: -20px;      display: none;    }    .scroll .arrow div{      width: 40px;      height: 40px;      font: 700 18px/40px "宋体";      text-align: center;      background: rgba(0,0,0,.3);      color: #fff;      cursor: pointer;    }    .scroll .arrow div.left{      float: left;    }    .scroll .arrow div.right{      float: right;    }  </style>  <script>    window.onload = function(){      function $(id){ return document.getElementById(id);}      var scrollDiv = $('scrollDiv');      var imgul = $('images');      var focusUl = $('focuses');      var imgLis = imgul.children;      var leader = 0, target = 0;      var curIndex = 0;//记录当前图片的序号      var leftArrow = $('leftArrow');      var rightArrow = $('rightArrow');      //可自动生成和图片对应的序号      /*for(var i=0; i< imgLis.length; i++){        var newLi = document.createElement('li');        newLi.innerHTML=i+1;        focusUl.appendChild(newLi);      }*/      var focusLis = focusUl.children;      for(var i=0; i<focusLis.length; i++){        focusLis[i].index = i;        focusLis[i].onmouseover = function(){          curIndex = this.index;          switchFocus(curIndex);          target = -this.index * 300;        }      }      scrollDiv.onmouseover = function(){        $('arrowDiv').style.display="block";        clearInterval(timer);      }      scrollDiv.onmouseout = function(){        $('arrowDiv').style.display="none";        timer = setInterval(autoPlay,3000);      }      leftArrow.onclick = function(){        target +=300;        curIndex = curIndex==0 ? focusLis.length-1 : curIndex-1;        switchFocus(curIndex);      }      rightArrow.onclick = function(){        target -=300;        curIndex = (curIndex+1) % focusLis.length;        switchFocus(curIndex);      }      //缓动效果      setInterval(function(){        if(target > 0){          target = -900;          leader = -1000;        }else if(target < -900){          target = 0;          leader = 100;        }        leader = leader + (target - leader) / 10;        imgul.style.left = leader +"px";      } ,10);      switchFocus(0);      //每隔3s左移图片      var timer = null;      timer = setInterval(autoPlay,3000);      function autoPlay(){        target -= 300;        curIndex = (curIndex+1) % focusLis.length;        switchFocus(curIndex);      }      //转换样式      function switchFocus(curIndex){        for(var j=0; j<focusLis.length;j++){            focusLis[j].className="";          }        focusLis[curIndex].className="current";      }    }  </script></head><body>  <div class="scroll" id="scrollDiv">    <ul class="imgUl" id="images">      <li><img src="images/01.jpg" alt=""></li>      <li><img src="images/02.jpg" alt=""></li>      <li><img src="images/03.jpg" alt=""></li>      <li><img src="images/04.jpg" alt=""></li>    </ul>    <ul class="focus" id="focuses">      <li>1</li>      <li>2</li>      <li>3</li>      <li>4</li>    </ul>    <div class="arrow" id="arrowDiv">      <div class="left" id="leftArrow"><</div>      <div class="right" id="rightArrow">></div>    </div>  </div></body></html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表