美文网首页
18js一个简单的轮播图

18js一个简单的轮播图

作者: An的杂货铺 | 来源:发表于2019-03-13 15:07 被阅读0次
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>* {
    margin: 0;
    padding: 0;
}

ul,
ol {
    list-style: none;
}

img {
    display: block;
    /* 清除图片底册 3像素缝隙*/
}

.slider {
    width: 490px;
    height: 170px;
    border: 1px solid #ccc;
    margin: 100px auto;
    padding: 5px;
    position: relative;
}

.inner {
    width: 100%;
    height: 100%;
    background-color: pink;
    position: relative;
    overflow: hidden;
}

.inner ul {
    width: 500%;
    position: absolute;
    top: 0;
    left: 0;
}

.inner ul li {
    float: left;
}

.slider ol {
    position: absolute;
    left: 50%;
    /* margin-left: -80px;*/
    bottom: 10px;
}

.slider ol li {
    float: left;
    width: 18px;
    height: 18px;
    background-color: #fff;
    margin-right: 10px;
    text-align: center;
    line-height: 18px;
    cursor: pointer;
}

.slider ol li.current {
    background-color: orange;
}</style>
</head>
<body>
<div class="slider" id="slider">
    <div class="inner">
        <ul id="box">
            <li><a href="#"><img src="images/01.jpg" alt=""/></a></li>
            <li><a href="#"><img src="images/02.jpg" alt=""/></a></li>
            <li><a href="#"><img src="images/03.jpg" alt=""/></a></li>
            <li><a href="#"><img src="images/04.jpg" alt=""/></a></li>
            <li><a href="#"><img src="images/05.jpg" alt=""/></a></li>
        </ul>
    </div>
    <ol id="bt">
        <li class="current">1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ol>
</div>
</body>
</html>
<script type="text/javascript" src = sport.js></script>
<script>
     window.onload = function(){
        timerone = setInterval(autoPlay,2000);
     }
     function $(id){
        return document.getElementById(id);
     }
     var box = $('box');
     var oli = $('bt').children;
     var target = 0;
     var index = 0;
     var timerone = null;
     function autoPlay(){
        index++;
        if(index>=oli.length){
            index = 0;
        }
        if(target === -490*4){
            target = 0
        }else{
            target-=490
        }
        for(var i = 0;i<oli.length;i++){
            oli[i].className = '';
        }
        oli[index].className = 'current';
        startMove(box,target,'left')
     }  
     
</script>
 

sport.js

function startMove(obj,target,attr){
            clearInterval(obj.timer);
            obj.timer = setInterval(function(){
               var current = parseFloat(getStyle(obj,attr));
               var speed = 0;
               if(attr === 'opacity'){
                  speed = target-current>0?0.1:-0.1;
               }else{
                  speed = (target - current)/10; //    
                  speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
               }
               
               if(target == current){
                   clearInterval(obj.timer);
               }else{
                if(attr === 'opacity'){
                  obj.style[attr] = current+speed;
                }else{
                  obj.style[attr] = current+speed+'px';
                }
               }
            },20)
           }
//获取元素的属性
function getStyle(obj,attr){
  if(window.getComputedStyle){
      return window.getComputedStyle(obj,null)[attr];
  }else{
      return obj.currentStyle[attr];
  }
}
//针对两种情况来进行一下整合

如下图


ten.gif

相关文章

网友评论

      本文标题:18js一个简单的轮播图

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