基于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 相关文章推荐
一个简单的javascript类定义例子
Sep 12 Javascript
jQuery AjaxQueue改进步骤
Oct 06 Javascript
通过jQuery源码学习javascript(一)
Dec 27 Javascript
JavaScript随机生成信用卡卡号的方法
Apr 07 Javascript
详解jQuery Mobile自定义标签
Jan 06 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 jQuery
js实现rem自动匹配计算font-size的示例
Nov 18 Javascript
Vue.js中的computed工作原理
Mar 22 Javascript
浅谈Webpack打包优化技巧
Jun 12 Javascript
js实现购物车功能
Jun 12 Javascript
JS中的防抖与节流及作用详解
Apr 01 Javascript
微信小程序实现锚点跳转
Nov 23 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下把数组保存为文件格式的实例应用
2010/02/08 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
2010/04/13 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
最全面的百度地图JavaScript离线版开发
2016/09/10 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
Angular CLI 使用教程指南参考小结
2019/04/10 Javascript
解决vue打包后vendor.js文件过大问题
2019/07/03 Javascript
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
Python正则表达式教程之二:捕获篇
2017/03/02 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
Python八皇后问题解答过程详解
2019/07/29 Python
python 实现list或string按指定分段
2019/12/25 Python
Tensorflow获取张量Tensor的具体维数实例
2020/01/19 Python
Python列表解析操作实例总结
2020/02/26 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
Python基于traceback模块获取异常信息
2020/07/23 Python
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
bonprix荷兰网上商店:便宜的服装、鞋子和家居用品
2020/07/04 全球购物
十佳大学生事迹材料
2014/01/29 职场文书
秋游活动策划方案
2014/02/16 职场文书
再婚婚前财产协议书范本
2014/10/19 职场文书
公安个人四风问题对照检查及整改措施
2014/10/28 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
2015初中生物教研组工作总结
2015/07/21 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python