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


Posted in Javascript onJune 19, 2017

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实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript和ActionScript的交互实现代码
Aug 01 Javascript
SlideView 图片滑动(扩展/收缩)展示效果
Aug 01 Javascript
ASP.NET jQuery 实例4(复制TextBox的文本到本地剪贴板上)
Jan 13 Javascript
jQuery 过滤not()与filter()实例代码
May 10 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
Nov 25 Javascript
JS简单限制textarea内输入字符数量的方法
Oct 14 Javascript
js实现表单多按钮提交action的处理方法
Oct 24 Javascript
Angularjs全局变量被作用域监听的正确姿势
Feb 06 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
Mar 10 Javascript
JS闭包可被利用的常见场景小结
Apr 09 Javascript
react native与webview通信的示例代码
Sep 25 Javascript
利用JavaScript将Excel转换为JSON示例代码
Jun 14 Javascript
JS仿淘宝搜索框用户输入事件的实现
Jun 19 #Javascript
jQuery实现下拉菜单的实例代码
Jun 19 #jQuery
微信小程序实现皮肤功能(夜间模式)
Jun 18 #Javascript
关于javascript作用域的常见面试题分享
Jun 18 #Javascript
Angular.js中下拉框实现渲染html的方法
Jun 18 #Javascript
Webpack打包css后z-index被重新计算的解决方法
Jun 18 #Javascript
利用JavaScript对中文(汉字)进行排序实例详解
Jun 18 #Javascript
You might like
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
js中substring和substr的定义和用法
2014/05/05 Javascript
跟我学Nodejs(二)--- Node.js事件模块
2014/05/21 NodeJs
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
JS实现文字向下滚动完整实例
2015/02/06 Javascript
讲解JavaScript中for...in语句的使用方法
2015/06/03 Javascript
深入理解JavaScript中的箭头函数
2015/07/28 Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
2016/05/10 Javascript
JS实现动态修改table及合并单元格的方法示例
2017/02/20 Javascript
Node.js如何响应Ajax的POST请求并且保存为JSON文件详解
2017/03/10 Javascript
Vue 中的compile操作方法
2018/02/26 Javascript
使用node打造自己的命令行工具方法教程
2018/03/26 Javascript
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
Nuxt.js SSR与权限验证的实现
2018/11/21 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
2019/08/08 Javascript
vue iview的菜单组件Mune 点击不高亮的解决方案
2019/11/01 Javascript
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
python集合类型用法分析
2015/04/08 Python
Python 比较两个数组的元素的异同方法
2017/08/17 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
python的range和linspace使用详解
2019/11/27 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
python中类与对象之间的关系详解
2020/12/16 Python
Python用Jira库来操作Jira
2020/12/28 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
高职助产应届生自荐信
2013/09/24 职场文书
绿色学校实施方案
2014/03/31 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
四群教育工作总结
2015/08/10 职场文书
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python
用golang如何替换某个文件中的字符串
2021/04/25 Golang
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
2022/02/12 Servers