JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)

发布时间 - 2026-01-11 01:56:34    点击率:

1、本文使用js+jQuery实现轮播图,需要引用jquery包,另种实现分别是animate实现自适应的轮播,以及transform平滑轮播(在注释代码中)。

2、代码中的图片大家自己更换就可以了,样式和逻辑均写在js里。

3、html标签代码,js代码

<div class="slider">
  //轮播箭头
 <p class="lastpic"><img src="../images/prev.png"></p>
 <p class="nextpic"><img src="../images/next.png"></p>
 //轮播图片
 <ul id="slides" class="slides clearfix">
 <li><img class="responsive" src="../images/wrap-page.jpg" alt="暂无图片"></li>
 <li><img class="responsive" src="../images/wrap-page.jpg" alt="暂无图片"></li>
 <li><img class="responsive" src="../images/wrap-page.jpg" alt="暂无图片"></li>
 <li><img class="responsive" src="../images/wrap-page.jpg" alt="暂无图片"></li>
 </ul>
</div>
 <script type="text/javascript">
  $(document).ready(function() {
  var len = $(".slider li").length-1;
  //给slider设置样式
  $(".slider").css({
   "width":"100%",
   "height": "inherit",
   "overflow": "hidden",
   "display":"inline-block"
  });
  
  //给ul设置宽度
  $(".slides").css({
   "position": "relative",
   "width":((len+1)*100).toString()+"%",
   "margin":"0",
   "padding":"0"});
  //给li设置百分比宽度
  $(".slides li").css({
   "width":(100/(len+1)).toString()+"%",
   "float":"left"
  });
  //给图片设置宽度
  $(".responsive").css({
   "width":"100%",
   "height":"inherit"
  });
  //控制点样式
  $(".slider p").css({
   "position": "absolute",
   "z-index":"999",
   "cursor": "pointer"
  });
  $(".slider .lastpic").css({
   "left":"0",
   "margin-top":"7%"
  });
  $(".slider .nextpic").css({
   "right":"0",
   "margin-top":"7%"
  });
  //animate移动
  var i = 0;
  $(".nextpic").click(function(){
   moveNext(i);
  });
  $(".lastpic").click(function(){
   moveLast(i);
  });
  //自动轮播
  var timer = setInterval(function(){
   moveNext(i);
  },5000);
  moveNext = function(n){
   if(n==len){
   i=-1;
   $(".slider .slides").animate({right: ""},800);
   }else{
   $(".slider .slides").animate({right:((n+1)*100).toString()+"%"}, 800);
   }
   i++;
  }
  moveLast = function(n){
   if(n==0){
   i=len+1;
   $(".slider .slides").animate({right:(len*100).toString()+"%"}, 800);
   }else{
   $(".slider .slides").animate({right:((n-1)*100).toString()+"%"}, 800);
   }
   i--;
  }
  //手机触摸效果
  var startX,endX,moveX;
  function touchStart(event){
   var touch = event.touches[0];
   startX = touch.pageX;
  }
  function touchMove(event){
   var touch = event.touches[0];
   endX = touch.pageX;
  }
  function touchEnd(event){
   moveX = startX - endX;
   if(moveX>50){
   moveNext(i);
   }else if(moveX<-50){
   moveLast(i);
   }
  }
  document.getElementById("slides").addEventListener("touchstart",touchStart,false);
  document.getElementById("slides").addEventListener("touchmove",touchMove,false);
  document.getElementById("slides").addEventListener("touchend",touchEnd,false);
  //transition移动固定宽度,无法自适应
  // $(".nextpic").click(function(){
  // if(i==len){
  //  i=-1;
  //  $(".slider .slides").css({
  //  'transition-timing-function':'linear',
  //  'transition-duration':'800ms',
  //  'transform':'translateX(0px)'
  //  })
  // }else{
  //  $(".slider .slides").css({
  //  'transition-timing-function':'linear',
  //  'transition-duration':'800ms',
  //  'transform':'translateX(-'+(i+1)*width+'px)'
  //  })
  // }
  // i++;
  // });
  // $(".lastpic").click(function(){
  // if(i==0){
  //  i=len+1;
  //  $(".slider .slides").css({
  //  'transition-timing-function':'linear',
  //  'transition-duration':'800ms',
  //  'transform':'translateX(-'+len*width+'px)'
  //  })
  // }else{
  //  $(".slider .slides").css({
  //  'transition-timing-function':'linear',
  //  'transition-duration':'800ms',
  //  'transform':'translateX(-'+(i-1)*width+'px)'
  //  })
  // }
  // i--;
  // })
  
  });
 </script>

以上所述是小编给大家介绍的JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# js  # 实现自动轮播图  # 原生js实现轮播图的示例代码  # js实现轮播图的完整代码  # js实现支持手机滑动切换的轮播图片效果实例  # JS轮播图实现简单代码  # JS实现轮播图效果的3种简单方法  # js实现从左向右滑动式轮播图效果  # js实现点击左右按钮轮播图片效果实例  # 使用html+js+css 实现页面轮播图效果(实例讲解)  # 原生js实现无限循环轮播图效果  # JS使用定时器与事件监听实现轮播图切换功能  # 暂无  # 自适应  # 小编  # 在此  # 给大家  # 写在  # 所述  # 给我留言  # 感谢大家  # 就可以  # 疑问请  # 有任何  # text  # script  # type  # alt  # responsive  # li  # clearfix  # jpg 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何利用DOS批处理实现定时关机操作详解  Laravel怎么在Controller之外的地方验证数据  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  如何快速生成专业多端适配建站电话?  javascript读取文本节点方法小结  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  如何在橙子建站中快速调整背景颜色?  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  如何在万网主机上快速搭建网站?  图册素材网站设计制作软件,图册的导出方式有几种?  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Laravel如何处理CORS跨域请求?(配置示例)  C++用Dijkstra(迪杰斯特拉)算法求最短路径  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  QQ浏览器网页版登录入口 个人中心在线进入  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  java获取注册ip实例  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  Laravel如何使用查询构建器?(Query Builder高级用法)  如何快速辨别茅台真假?关键步骤解析  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  如何基于PHP生成高效IDC网络公司建站源码?  如何打造高效商业网站?建站目的决定转化率  Thinkphp 中 distinct 的用法解析  如何快速配置高效服务器建站软件?  Bootstrap CSS布局之列表  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  如何快速搭建支持数据库操作的智能建站平台?  智能起名网站制作软件有哪些,制作logo的软件?  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  nodejs redis 发布订阅机制封装实现方法及实例代码  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  如何实现javascript表单验证_正则表达式有哪些实用技巧  Laravel如何配置和使用缓存?(Redis代码示例)  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  详解vue.js组件化开发实践  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南