为了账号安全,请及时绑定邮箱和手机立即绑定

看了两遍视频,自己整理出来的源代码,样式有些不一样。不过,功能都能实现

<style>
 *{ margin:0; padding:0; text-decoration:none;}
 body{ padding:20px;}
 #container{ width:600px; height:400px; border:3px solid #f00; overflow:hidden; position:relative;}
 #list{ width:4200px; height:400px; position:absolute; z-index:1;}
 #list img{ float:left;}
 #buttons{ position:absolute; height:10px; width:100px; z-index:2; bottom:20px; left:250px;}
 #buttons span{ cursor:pointer; float:left; border:1px solid #000; width:10px; height:10px; margin-right:5px;}
 #buttons .on{ background:#f00;}
 .arrow{ cursor:pointer; display:none; line-height:39px; text-align:center; font-size:36px; font-weight:bold; width:40px; height:40px;
   position:absolute; z-index:2; top:180px; background:#ccc;}
 .arrow:hover{ background:#000;}
 #container:hover .arrow{ display:block;}
 #prev{ left:20px;}
 #next{ right:20px;}
</style>
<script type="text/javascript">
 window.onload = function(){
  var container = document.getElementById('container');
  var list = document.getElementById('list');
  var buttons = document.getElementById('buttons').getElementsByTagName('span');
  var prev = document.getElementById('prev');
  var next = document.getElementById('next');
  var index = 1;
  var animated = false;
  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 animate(offset){
   animated = true;
   var newLeft = parseInt(list.style.left) + offset;
   var time = 300;
   var interval = 10;
   var speed = offset/(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 > -600){
      list.style.left = -3000 + 'px';
     }
     if(newLeft < -3000){
      list.style.left = -600 + 'px';
     }
    }
   }
   go();
   
  }
  
  function play(){
   timer = setInterval(function(){
    next.onclick();
   },3000);
  }
  
  function stop(){
   clearInterval(timer);
  }
  
  next.onclick = function(){
   if(index == 5){
    index = 1;
   }
   else{
    index += 1;
   }
   showButton();
   if(!animated){
    animate(-600);
   }
  }
  prev.onclick = function(){
   if(index == 1){
    index = 5;
   }
   else{
    index -= 1;
   }
   showButton();
   if(!animated){
    animate(600);
   }
  }
  for(var i = 0; i < buttons.length; i++){
   buttons[i].onclick = function(){
    if(this.className == 'on'){
     return;
    }
    var myIndex = parseInt(this.getAttribute('index'));
    var offset = -600 * (myIndex - index);
    
    if(!animated){
     animate(offset);
    }
    index = myIndex;
    showButton();
   }
  }
  container.onmouseover = stop;
  container.onmouseout = play;
  
  play();
 }
</script>
</head>

<body>
<div id="container">
 <div id="list" style="left:-600px; ">
  <img src="images/005.jpg" alt=""/>
  <img src="images/001.jpg" alt=""/>
  <img src="images/002.jpg" alt=""/>
  <img src="images/003.jpg" alt=""/>
  <img src="images/004.jpg" alt=""/>
  <img src="images/005.jpg" alt=""/>
  <img src="images/001.jpg" alt=""/>
 </div>
 <div id="buttons">
  <span index="1" class="on"></span>
  <span index="2"></span>
  <span index="3"></span>
  <span index="4"></span>
  <span index="5"></span>
 </div>
 <a href="javascript:;" class="arrow" id="prev">&lt;</a>
 <a href="javascript:;" class="arrow" id="next">&gt;</a>
</div>
</body>

正在回答

0 回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信