基于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和jquery批量绑定事件传参数一(新猪猪原创)
Jun 23 Javascript
jquery插件制作教程 txtHover
Aug 17 Javascript
js实现的点击数量加一可操作数据库
May 09 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
Mar 24 Javascript
jquery调整表格行tr上下顺序实例讲解
Jan 09 Javascript
Javascript的表单验证-初识正则表达式
Mar 18 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
Aug 29 Javascript
遍历json 对象的属性并且动态添加属性的实现
Dec 02 Javascript
jQuery实现移动端Tab选项卡效果
Mar 15 Javascript
Angular使用cli生成自定义文件、组件的方法
Sep 04 Javascript
node.js事件轮询机制原理知识点
Dec 22 Javascript
微信小程序实现文件预览
Oct 22 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
星际中一些鲜为人知的详细资料
2020/03/04 星际争霸
php实现简单的MVC框架实例
2015/09/23 PHP
浅谈javascript中的闭包
2015/05/13 Javascript
JavaScript如何动态创建table表格
2020/08/02 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
2016/07/01 Javascript
怎样判断jQuery当前元素是隐藏还是显示
2016/11/23 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
使用vue实现grid-layout功能实例代码
2018/01/05 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
JavaScript实现下拉列表
2021/01/20 Javascript
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
使用Python对SQLite数据库操作
2017/04/06 Python
Python星号*与**用法分析
2018/02/02 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
2018/06/11 Python
Django之Mode的外键自关联和引用未定义的Model方法
2018/12/15 Python
使用Python函数进行模块化的实现
2019/11/15 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
python math模块的基本使用教程
2021/01/16 Python
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
采用怎样的方法保证数据的完整性
2013/12/02 面试题
高级销售求职信
2014/02/21 职场文书
蛋糕店创业计划书
2014/05/06 职场文书
装配出错检讨书
2014/09/23 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
Python djanjo之csrf防跨站攻击实验过程
2021/05/14 Python
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python
Python标准库之typing的用法(类型标注)
2021/06/02 Python
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
nginx请求限制配置方法
2021/07/09 Servers
高并发下Redis如何保持数据一致性(避免读后写)
2022/03/18 Redis