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

支持移动端原生js轮播图

程序员文章站 2023-11-22 16:15:16
直接上代码,自行复制粘贴,本人是新手,欢迎指正。

直接上代码,自行复制粘贴,本人是新手,欢迎指正。

<!doctype html>
<html lang="en-us">
<head>
 <meta charset="utf-8">
 <title>轮播图</title>
 <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" />
 <style type="text/css">
 .container{
  width: 500px;
  height: 400px;
  overflow: hidden;
  margin: 50px auto;
  position: relative;
 }
 .list{
  width: 2500px;
  height: 400px;
  position: absolute;
  left: 0px;
 }
 .list img{
  float: left;
  height: 400px;
  width: 500px;
 }
 .buttons{
  position: absolute;
  width: 75px;
  height: 20px;
  bottom: 10px;
  left: 50%;
  margin-left: -38px;
  z-index: 2;
 }
 .buttons span{
  width: 10px;
  height: 10px;
  margin-right: 5px;
  display: inline-block;
  border-radius: 5px;
  background-color: gray;
  opacity: 0.5;
  cursor: pointer;
 }
 .buttons .on{
  background-color: rgb(255,50,50);
  opacity: 0.8;
 }
 .arrow{
  position: absolute;
  background-color: gray;
  opacity: 0.5;
  height: 40px;
  width: 40px;
  color: #fff;
  text-decoration: none;
  line-height: 40px;
  font-size: 28px;
  font-weight: 800;
  text-align: center;
 }
 #prev{
  top:50%;
  left: 10px;
  margin-top:-20px;
 }
 #next{
  top:50%;
  right: 10px;
  margin-top:-20px;
 }
 </style>
</head>
<body>
 <div id="container" class="container">
 <div id="list" class="list">
  <img src="1.jpg">
  <img src="2.jpg">
  <img src="3.jpg">
  <img src="4.jpg">
  <img src="5.jpg">
 </div>
 <div id="buttons" class="buttons">
  <span index="0" class="on"></span><!--
  --><span index="1"></span><!--
  --><span index="2"></span><!--
  --><span index="3"></span><!--
  --><span index="4"></span>
 </div>
 <a href="javascript:;" rel="external nofollow" rel="external nofollow" id="prev" class="arrow"><</a>
 <a href="javascript:;" rel="external nofollow" rel="external nofollow" id="next" class="arrow">></a>
 </div>
 <script type="text/javascript">
 window.onload = function(){
  var container = document.getelementbyid('container');
  var list = document.getelementbyid('list');
  var buttons = document.getelementbyid('buttons');
  var buttonsitem = buttons.getelementsbytagname('span');
  var prev = document.getelementbyid('prev');
  var next = document.getelementbyid('next');
  var index = 0;
  var startx = 0;
  var endx = 0;


  container.addeventlistener('touchend',function(event){
  if(event.changedtouches.length==1&&this.getattribute('disabled')!='disabled'){
   var touch = event.changedtouches[0];
   endx = touch.pagex;
   var offset = endx-startx;
   console.log(offset);
   if(math.abs(offset)>=50){
   if(offset<0){// 右滑
    nextmethod();
   }else{
    prevmethod();
   }
   }
  }
  });

  container.addeventlistener('touchmove',function(){
  event.preventdefault();
  })

  container.addeventlistener('touchstart',function(event){
  if(event.targettouches.length==1&&this.getattribute('disabled')!='disabled'){ 
   var touch = event.targettouches[0];
   startx = touch.pagex;
  }
  })

  prev.addeventlistener('click',function(){ 
  if (this.getattribute('disabled')=='disabled') {
   return false;
  }
  prevmethod();
  });

  next.addeventlistener('click',function(){
  if (this.getattribute('disabled')=='disabled') {
   return false;
  }
  nextmethod();
  });

  for(var i=0;i<buttonsitem.length;i++){
  buttonsitem[i].onclick = function(){
   if (this.getattribute('disabled')=='disabled') {
   return false;
   }
   var i = this.getattribute('index');
   var length = math.abs((i-index)*500);
   var direction = 'right';
   if (length<0) {
   direction = 'left';
   }
   index = i;
   document.getelementsbyclassname('on')[0].setattribute('class','');
   buttonsitem[index].classname = 'on';
   animate(direction,1,length);
  }
  }

  function prevmethod(){
  if(index==0){
   index = 4;
   animate('right',40,2000);
  }else{
   index--;
   animate('left',1,500);
  }
  document.getelementsbyclassname('on')[0].setattribute('class','');
  // buttonsitem[index].setattribute('class','on');
  buttonsitem[index].classname = 'on';
  }

  function nextmethod(){
  if(index==4){
   index = 0;
   animate('left',40,2000);
  }else{
   index++;
   animate('right',1,500);
  }
  document.getelementsbyclassname('on')[0].setattribute('class','');
  buttonsitem[index].classname = 'on';
  }

  function animate(direction,speed,length){
  var end = length/speed;
  var count = 0;
  for(var i=0;i<end;i++){
   settimeout(function(){
    count++;
    var left = list.offsetleft;
    if (direction=='right') {
    left -= speed;
    }else{
    left += speed;
    }
    list.style.left = left+'px';
    if(count<end-1){
    disabledbuttons();
    }else{
    resumebuttons();
    }
   },speed*i);
   }
  }

  function disabledbuttons(){
  for(var i=0;i<5;i++){
   buttonsitem[i].setattribute('disabled','disabled');
  }
  prev.setattribute('disabled','disabled');
  next.setattribute('disabled','disabled');
  container.setattribute('disabled','disabled');
  }

  function resumebuttons(){
  for(var i=0;i<5;i++){
   buttonsitem[i].removeattribute('disabled');
  }
  prev.removeattribute('disabled');
  next.removeattribute('disabled');
  container.removeattribute('disabled');
  }
 }
 </script>
</body>
</html>

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