基于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 相关文章推荐
FireFox中textNode分片的问题
Apr 10 Javascript
Javascript动态绑定事件的简单实现代码
Dec 25 Javascript
js异步加载的三种解决方案
Mar 04 Javascript
JavaScript splice()方法详解
Sep 22 Javascript
JavaScript学习笔记之内置对象
Jan 22 Javascript
jQuery 全选 全部选 反选 实现代码
Aug 17 Javascript
微信小程序 登录实例详解
Jan 16 Javascript
基于BootStrap的前端分页带省略号和上下页效果
May 18 Javascript
javascript兼容性(实例讲解)
Aug 15 Javascript
小程序实现选择题选择效果
Nov 04 Javascript
关于微信公众号开发无法支付的问题解决
Dec 28 Javascript
element 动态合并表格的步骤
Dec 31 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
解析PHP中intval()等int转换时的意外异常情况
2013/06/21 PHP
解析zend Framework如何自动加载类
2013/06/28 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
基于jQuery的history历史记录插件
2010/12/11 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
使用JS获取当前地理位置方法汇总
2014/12/18 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
javascript中递归的两种写法
2017/01/17 Javascript
JavaScript和jQuery制作光棒效果
2017/02/24 Javascript
微信小程序实现星级评分和展示
2018/07/05 Javascript
Promise.all中对于reject的处理方法
2018/08/01 Javascript
详解nodejs http请求相关总结
2019/03/31 NodeJs
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
js实现带箭头的进度流程
2020/03/26 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
python MySQLdb Windows下安装教程及问题解决方法
2015/05/09 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
Sanic框架Cookies操作示例
2018/07/17 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
对pandas通过索引提取dataframe的行方法详解
2019/02/01 Python
python调用其他文件函数或类的示例
2019/07/16 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
通过实例简单了解Python中yield的作用
2019/12/11 Python
python 使用openpyxl读取excel数据
2021/02/18 Python
艺术用品:Arteza
2018/11/25 全球购物
读群众路线心得体会
2014/03/07 职场文书
《海伦?凯勒》教学反思
2014/04/17 职场文书
商务专员岗位职责范本
2014/06/29 职场文书
预备党员介绍人意见
2015/06/01 职场文书