基于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三种排序算法分享
Aug 16 Javascript
jQuery隔行变色与普通JS写法的对比
Apr 21 Javascript
jquery中$.post()方法的简单实例
Feb 04 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
Feb 02 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
May 16 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
May 02 Javascript
纯js实现的积木(div层)拖动功能示例
Jul 19 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
Nov 10 Javascript
理解 JavaScript EventEmitter
Mar 29 Javascript
node thread.sleep实现示例
Jun 20 Javascript
浅谈Webpack核心模块tapable解析
Sep 11 Javascript
jquery实现拖拽添加元素功能
Dec 01 jQuery
原生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
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
php 深入理解strtotime函数的使用详解
2013/05/23 PHP
php中current、next与reset函数用法实例
2014/11/17 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
php文件系统处理方法小结
2016/05/23 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
页面版文本框智能提示JS代码
2009/11/20 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
js网页滚动条滚动事件实例分析
2015/05/05 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
详解VueJs异步动态加载块
2017/03/09 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
Javascript循环删除数组中元素的几种方法示例
2017/05/18 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
在Django的上下文中设置变量的方法
2015/07/20 Python
使用Python写个小监控
2016/01/27 Python
Python实现判断一个字符串是否包含子串的方法总结
2017/11/21 Python
Python模拟登录的多种方法(四种)
2018/06/01 Python
Python实现栈和队列的简单操作方法示例
2019/11/29 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
Python网络爬虫信息提取mooc代码实例
2020/03/06 Python
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
美国沙龙美发产品购物网站:Hair.com by L’Oreal
2020/11/09 全球购物
土木建筑学生自我评价
2014/01/14 职场文书
境外导游求职信
2014/02/27 职场文书
二手车交易协议书标准版
2014/11/16 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
宇宙与人观后感
2015/06/05 职场文书
河童之夏观后感
2015/06/11 职场文书
Oracle11g R2 安装教程完整版
2021/06/04 Oracle
Python基础之条件语句详解
2021/06/16 Python
netty 实现tomcat的示例代码
2022/06/05 Servers