<!DOCTYPE html>
  <html>
  <head>
  <meta charset="UTF-8">
  <title></title>
  <style>
  *{
  margin: 0;
  padding: 0;
  text-decoration: none;
  }
  #container{
  width: 600px;
  height: 400px;
  border: 3px solid gold;
  position: relative;
  margin: 300px auto;
  overflow: hidden;
  z-index: 2;
  /*transition: all 0.5s ease;*/
  }
  #list{
  width: 3600px;
  height: 400px;
  position: absolute;
  z-index: 1;
  left: -600px;
  }
  #list img{
  width: 600px;
  height: 400px;
  float: left;
  }
  span{
  position: absolute;
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  z-index: 2;
  background: gainsboro;
  bottom: 10px;
  }
  p{
  z-index: 2;
  width: 50px;
  line-height: 50px;
  background: rgba(0,0,0,0.3);
  color: white;
  position: absolute;
  font-size: 40px;
  text-align: center;
  }
  .p1{
  top: 175px;
  left: 0;
  }
  .p2{
  top: 175px;
  right: 0px;
  }
  #container:hover .p1,#container:hover .p2{
  background: rgba(0,0,0,0.7);
  }
   
  </style>
  </head>
  <body>
  <div id="container">
  <div id="list">
  <img src="img/4.jpg" alt="" />
  <img src="img/1.jpg" alt="" />
  <img src="img/2.jpg" alt="" />
  <img src="img/3.jpg" alt="" />
  <img src="img/4.jpg" alt="" />
  <img src="img/1.jpg" alt="" />
  </div>
  <p class="p1" onclick="lfClick(10)">&lt;</p>
  <p class="p2" onclick="lfClick(-10)">&gt;</p>
  <span onclick="oClick(-600,0)"></span>
  <span onclick="oClick(-1200,1)"></span>
  <span onclick="oClick(-1800,2)"></span>
  <span onclick="oClick(-2400,3)"></span>
  </div>
  </body>
  <script type="text/javascript">
  var list = document.getElementById('list');
  var ps = document.querySelectorAll('p');
  var timer = null ;
  var spans = document.querySelectorAll('span');
  var timeOut = null;
  for(var i = 0 ;i<spans.length; i++){
  spans[i].style.left = 250 + i*20 + 'px';
  }
   
  timer=setInterval(doMove,20);
  function doMove(){
  var speed = parseInt(getStyle()) - 10;
  list.style.left = speed +'px';
   
  if(speed %600 ==0){
  clearInterval(timer);
  timeOut = setTimeout(function(){
  timer=setInterval(doMove,20);
  },1000);
  }
  btnColor(speed);
   
  }
   
   
  //前后事件
  var setInter =null;
  // ps[0].onclick = lfClick(10);
  function lfClick(dir) {
  clearInterval(timer);
  clearInterval(setInter);
   
  if(parseInt(getStyle()) < -600 && parseInt(getStyle())>-1200){
  list.style.left = -600 +'px';
   
  }
   
  if(parseInt(getStyle()) < -1200 && parseInt(getStyle())>-1800){
  list.style.left = -1200 +'px';
  }
  if(parseInt(getStyle()) < -1800 && parseInt(getStyle())>-2400){
  list.style.left = -1800 +'px';
  }
  if(parseInt(getStyle()) < -2400 && parseInt(getStyle())>-3000){
  list.style.left = -2400 +'px';
  }
   
  setInter = setInterval(function(){
  clearInterval(timer);
  clearTimeout(timeOut);
  var speed = parseInt(getStyle()) + dir ;
  list.style.left = speed + 'px';
  btnColor(speed);
  if(speed %600 == 0){
  clearInterval(setInter);
  timeOut = setTimeout(function(){
  timer=setInterval(doMove,20);
  },1000);
  if(speed == 0){
  list.style.left = '-2400px';
  }
  if(speed == -3000){
  list.style.left = '-600px';
  }
  }
   
   
   
  },10)
   
  }
   
  function getStyle(){
  return list.currentStyle? list.currentStyle.left:getComputedStyle(list).left;
  }
   
  function oClick(dir,index){
  clearInterval(timer);
  clearTimeout(timeOut)
  list.style.left = dir + 'px';
  for(var i = 0 ;i<spans.length; i++){
  spans[i].style.background='gainsboro';
  }
  spans[index].style.background = 'red';
  timeOut = setTimeout(function(){
  timer=setInterval(doMove,20);
  },1000);
  }
   
  function btnColor(speed){
  if(speed == -600 ){
  spans[0].style.background = 'red';
  spans[3].style.background = 'gainsboro';
  spans[1].style.background = 'gainsboro';
   
  }
  if(speed == -1200 ){
  spans[1].style.background = 'red';
  spans[0].style.background = 'gainsboro';
  spans[2].style.background = 'gainsboro';
  }
  if(speed == -1800){
  spans[2].style.background = 'red';
  spans[1].style.background = 'gainsboro';
  spans[3].style.background = 'gainsboro';
  }
  if(speed == -2400 ||speed ==0){
  spans[3].style.background = 'red';
  spans[2].style.background = 'gainsboro';
  spans[0].style.background = 'gainsboro';
  }
   
  if(speed == -3000){
  list.style.left = -600 +'px';
  spans[0].style.background = 'red';
  spans[3].style.background = 'gainsboro';
  }
  }
   
  </script>
  </html>