基于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的ajax需要注意的地方dataType的设置
Aug 12 Javascript
在 Express 中使用模板引擎
Dec 10 Javascript
详解js中class的多种函数封装方法
Jan 03 Javascript
属于你的jQuery提示框(Tip)插件
Jan 20 Javascript
深入浅析javascript中的作用域(推荐)
Jul 19 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
Dec 19 Javascript
基于javascript实现数字英文验证码
Jan 25 Javascript
AngularJS监听路由变化的方法
Mar 07 Javascript
JS实现的自动打字效果示例
Mar 10 Javascript
JS变量及其作用域
Mar 29 Javascript
javascript实现拖拽碰撞检测
Mar 12 Javascript
解决vant title-active-color与title-inactive-color不生效问题
Nov 03 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实现网页缓存的工具类分享
2015/07/14 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
php取出数组单个值的方法
2018/03/12 PHP
php基于协程实现异步的方法分析
2019/07/17 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
jQuery bind事件使用详解
2011/05/05 Javascript
js弹出层永远居中实现思路及代码
2013/11/29 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
使用JQuery在线制作ppt并在线演示源码特效
2015/09/08 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
Angular中自定义Debounce Click指令防止重复点击
2017/07/26 Javascript
Vue.js分页组件实现:diVuePagination的使用详解
2018/01/10 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
node.JS事件机制与events事件模块的使用方法详解
2020/02/06 Javascript
Vue 简单实现前端权限控制的示例
2020/12/25 Vue.js
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
详解用Python调用百度地图正/逆地理编码API
2020/07/02 Python
python 多进程和协程配合使用写入数据
2020/10/30 Python
西班牙灯具网上商店:Lampara.es
2018/06/05 全球购物
初婚初育证明
2014/01/14 职场文书
小学生学习感言
2014/03/10 职场文书
《美丽的南沙群岛》教学反思
2014/04/27 职场文书
经济管理自荐书
2014/06/09 职场文书
学雷锋标语
2014/06/25 职场文书
读后感作文评语
2014/12/25 职场文书
基于python制作简易版学生信息管理系统
2021/04/20 Python