基于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 相关文章推荐
jquery插件之easing 动态菜单
Aug 21 Javascript
Jquery之美中不足小结
Feb 16 Javascript
面向对象继承实例(a如何继承b问题)(自写)
Jul 01 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
Dec 25 Javascript
jQuery中detach()方法用法实例
Dec 25 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
Aug 31 Javascript
深入浅出ES6之let和const命令
Aug 25 Javascript
JavaScript中关键字 in 的使用方法详解
Oct 17 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
Feb 15 Javascript
微信小程序中用WebStorm使用LESS
Mar 08 Javascript
新手入门js闭包学习过程解析
Oct 08 Javascript
jQuery 动画与停止动画效果实例详解
May 19 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
PHP安全技术之 实现php基本安全
2010/09/04 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
2010/03/14 Javascript
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
Javascript调用C#代码
2011/01/17 Javascript
javascript五图轮播切换实用版
2012/08/17 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
2013/05/27 Javascript
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
jquery+ajax+C#实现无刷新操作数据库数据的简单实例
2014/02/08 Javascript
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
Jquery实现遮罩层的方法
2015/06/08 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
详解vue+css3做交互特效的方法
2017/11/20 Javascript
JS中appendChild追加子节点无效的解决方法
2018/10/14 Javascript
vue实现拖拽的简单案例 不超出可视区域
2019/07/25 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
jQuery 选择方法及$(this)用法实例分析
2020/05/19 jQuery
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
Openlayers测量距离与面积的实现方法
2020/09/25 Javascript
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
基于Python模拟浏览器发送http请求
2020/11/06 Python
CSS3属性选择符介绍
2008/10/17 HTML / CSS
科颜氏加拿大官方网站: Kiehl’s加拿大
2016/08/16 全球购物
电大学习个人自我评价范文
2013/10/04 职场文书
公司薪酬管理制度
2014/01/31 职场文书
《狼》教学反思
2014/03/02 职场文书
法律六进活动方案
2014/03/13 职场文书
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
英文产品推荐信
2015/03/27 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
2015年中学体育教师工作总结
2015/10/23 职场文书
生活委员竞选稿
2015/11/21 职场文书
《陶罐和铁罐》教学反思
2016/03/03 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
python中sys模块的介绍与实例
2021/04/17 Python