基于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实现的完美渐变弹出层效果代码
Apr 02 Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
Feb 03 Javascript
gridpanel动态加载数据的实例代码
Jul 18 Javascript
ext combobox动态加载数据库数据(附前后台)
Jun 17 Javascript
使用jquery.upload.js实现异步上传示例代码
Jul 29 Javascript
jQuery操作Table技巧大汇总
Jan 23 Javascript
javascript执行环境及作用域详解
May 05 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
Jan 10 Javascript
Express之托管静态文件的方法
Jun 01 Javascript
js动态设置select下拉菜单的默认选中项实例
Aug 21 Javascript
微信小程序在线客服自动回复功能(基于node)
Jul 03 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
Nov 19 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/03/09 PHP
Codeigniter的dom类用法实例
2015/06/26 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
经常用到的JavasScript事件的翻译
2007/04/09 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
浏览器加载、渲染和解析过程黑箱简析
2012/11/29 Javascript
细说javascript函数从函数的构成开始
2013/08/29 Javascript
JS中的异常处理方法分享
2013/12/22 Javascript
zeroclipboard 单个复制按钮和多个复制按钮的实现方法
2014/06/14 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
2015/08/26 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
读Javascript高性能编程重点笔记
2016/12/21 Javascript
jQuery监听浏览器窗口大小的变化实例
2017/02/07 Javascript
Angular.js中上传指令ng-upload的基本使用教程
2017/07/30 Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
2017/12/27 Javascript
JS删除数组里的某个元素方法
2018/02/03 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
Bootbox将后台JSON数据填充Form表单的实例代码
2018/09/10 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
2018/09/19 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
基于Vue的商品主图放大镜方案详解
2019/09/19 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
2019/09/25 Javascript
vue实现购物车小案例
2019/09/27 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
Vue点击切换Class变化,实现Active当前样式操作
2020/07/17 Javascript
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
电气技术员岗位职责
2013/11/19 职场文书
新春文艺演出主持词
2014/03/27 职场文书
爱与责任师德演讲稿
2014/08/26 职场文书
同学聚会邀请函
2015/01/30 职场文书
女方离婚起诉书
2015/05/18 职场文书
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis
MySQL系列之二 多实例配置
2021/07/02 MySQL
Python Pandas 删除列操作
2022/03/16 Python