基于javascript实现移动端轮播图效果


Posted in Javascript onDecember 21, 2020

本文实例为大家分享了js实现移动端轮播图效果的具体代码,供大家参考,具体内容如下

插件使用:

1.zepto.js
2.touch.js

实现效果

基于javascript实现移动端轮播图效果

html部分:

<!-- 结构 -->
 <!-- li*6>a[href=#]>img[src=./images/$.jpg] -->
 <div class="box">
  <ul>
   <!-- 为了无缝连接,我们在图片这里前后增加了2个图片 -->
   <li>
    <a href="#" ><img src="./images/6.jpg" alt=""></a>
   </li>
   <li>
    <a href="#" ><img src="./images/1.jpg" alt=""></a>
   </li>
   <li>
    <a href="#" ><img src="./images/2.jpg" alt=""></a>
   </li>
   <li>
    <a href="#" ><img src="./images/3.jpg" alt=""></a>
   </li>
   <li>
    <a href="#" ><img src="./images/4.jpg" alt=""></a>
   </li>
   <li>
    <a href="#" ><img src="./images/5.jpg" alt=""></a>
   </li>
   <li>
    <a href="#" ><img src="./images/6.jpg" alt=""></a>
   </li>
   <li>
    <a href="#" ><img src="./images/1.jpg" alt=""></a>
   </li>
  </ul>
</div>

css部分:

* {
   margin: 0;
   padding: 0;
  }
  
  ul {
   list-style: none;
  }
  
  .box {
   width: 100%;
   overflow: hidden;
  }
  
  ul {
   /* 把li变成8张之后,需要,把ul的宽度变宽 */
   width: 800%;
   /* transition: all 1s; */
  }
  
  li {
   float: left;
   width: 12.5%;
  }
  
  img {
   width: 100%;
  }

js部分:

//获取DOM
 var box = $(".box");
 var img = $("ul img");
 var ul = $("ul");
 var imgWidth = img.width();

 var index = 1;
 var right = index * imgWidth;
 ul.css("transform", `translateX(-${right}px)`);
 setTimeout(function() {
  ul.css("transition", "all 500ms");
 }, 100);

 //往左滑,坐标在增大
 box.on("swipeLeft", function() {
  index++;
  // if (index == img.length) {
  //  index = 0;
  // }
  var left = index * imgWidth;
  ul.css("transform", `translateX(-${left}px)`);
 });
 //往左滑,坐标在增大
 box.on("swipeRight", function() {
  index--;
  // if (index == -1) {
  //  index = img.length - 1;
  // }
  var right = index * imgWidth;
  ul.css("transform", `translateX(-${right}px)`);
 });

 //过渡结束之后时进行
 ul.on("transitionend", function() {
  //1.判读 index
  //往左面滑(滑倒倒数第一张的时候,其实显示的已经是用户想看的第一张)
  if (index == img.length - 1) {

   index = 1;
   //index修改完毕之后需要重新执行一遍
   var right = index * imgWidth;
   ul.css("transform", `translateX(-${right}px)`);

   //2.取消过渡效果
   ul.css("transition", "none");
   //3.已经判断完毕了,重新打开过渡效果
   //这里设置一个1毫秒的延迟,否则会一起进行
   setTimeout(function() {
    ul.css("transition", "all 500ms");
   }, 1);
  }

  //1.判读 index
  //往右面滑(滑倒index为0的时候,显示的是客户想看的第6张图)
  if (index == 0) {
   //2.取消过渡效果
   ul.css("transition", "none");
   index = img.length - 2;
   //index修改完毕之后需要重新执行一遍
   var left = index * imgWidth;
   ul.css("transform", `translateX(-${left}px)`);
   //延迟开启过渡效果
   setTimeout(function() {
    ul.css("transition", "all 500ms");
   }, 1)
  }
 })

代码目前就分享到这里,欢迎大家有问题积极评论。

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

Javascript 相关文章推荐
JS Excel读取和写入操作(模板操作)实现代码
Apr 11 Javascript
web页面数据展示新想法(json)
Jun 08 Javascript
cookie.js 加载顺序问题怎么才有效
Jul 31 Javascript
javascript上传图片前预览图片兼容大多数浏览器
Oct 25 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
Jun 12 Javascript
jquery的checkbox,radio,select等方法小结
Aug 30 Javascript
Javascript的动态增加类的实现方法
Oct 20 Javascript
jQuery简单实现MD5加密的方法
Mar 03 Javascript
微信小程序 合法域名校验出错详解及解决办法
Mar 09 Javascript
fetch 使用及如何接收JS传值
Nov 11 Javascript
自己动手封装一个React Native多级联动
Sep 19 Javascript
layer弹出层显示在top顶层的方法
Sep 11 Javascript
原生JS实现pc端轮播图效果
Dec 21 #Javascript
js实现移动端轮播图滑动切换
Dec 21 #Javascript
vue监听滚动事件的方法
Dec 21 #Vue.js
vue el-upload上传文件的示例代码
Dec 21 #Vue.js
微信小程序自定义支持图片的弹窗
Dec 21 #Javascript
Jquery+javascript实现支付网页数字键盘
Dec 21 #jQuery
微信小程序实现modal弹出框遮罩层组件(可带文本框)
Dec 20 #Javascript
You might like
phpmyadmin 常用选项设置详解版
2010/03/07 PHP
PHP获取文件后缀名的三个函数
2012/10/15 PHP
php查询whois信息的方法
2015/06/08 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
深入解析PHP的Yii框架中的event事件机制
2016/03/17 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
PHP实现上传图片到 zimg 服务器
2016/10/19 PHP
基于Laravel 多个中间件的执行顺序详解
2019/10/21 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
js实现碰撞检测特效代码分享
2016/10/16 Javascript
PHPStorm中如何对nodejs项目进行单元测试详解
2019/02/28 NodeJs
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
python和shell变量互相传递的几种方法
2013/11/20 Python
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
2014/01/23 Python
python实现探测socket和web服务示例
2014/03/28 Python
使用Python绘制图表大全总结
2017/02/11 Python
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
Python时间和字符串转换操作实例分析
2019/03/16 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
python3爬取torrent种子链接实例
2020/01/16 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
办公室经理岗位职责
2014/01/01 职场文书
小学生元旦广播稿
2014/02/21 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
2015年电话销售工作总结范文
2015/04/20 职场文书
送达通知书
2015/04/25 职场文书
团组织关系介绍信
2019/06/24 职场文书
python3实现无权最短路径的方法
2021/05/12 Python
Python基础之函数嵌套知识总结
2021/05/23 Python