欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

完美的js图片轮换效果

程序员文章站 2023-11-03 13:19:52
本文实例为大家分享了js轮播图焦点的具体代码,供大家参考,具体内容如下

本文实例为大家分享了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>

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