基于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 相关文章推荐
表单元素事件 (Form Element Events)
Jul 17 Javascript
jQuery 中使用JSON的实现代码
Dec 01 Javascript
Jquery上传插件 uploadify v3.1使用说明
Jun 18 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
Nov 22 Javascript
Js操作树节点自动折叠展开的几种方法
May 05 Javascript
JavaSacript中charCodeAt()方法的使用详解
Jun 05 Javascript
Jquery实现弹性滑块滑动选择数值插件
Aug 08 Javascript
微信小程序 textarea 组件详解及简单实例
Jan 10 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
Mar 09 Javascript
cnpm加速Angular项目创建的方法
Sep 07 Javascript
jQuery 添加元素和删除元素的方法
Jul 15 jQuery
JS实现页面侧边栏效果探究
Jan 08 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模拟HTTP认证
2006/10/09 PHP
类的另类用法--数据的封装
2006/10/09 PHP
PHP的类 功能齐全的发送邮件类
2006/10/09 PHP
php 防止单引号,双引号在接受页面转义
2008/07/10 PHP
PHP整合PayPal支付
2015/06/11 PHP
微信自定义分享php代码分析
2016/11/24 PHP
PHP基于SPL实现的迭代器模式示例
2018/04/22 PHP
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
javascript清空table表格的方法
2015/05/14 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
jQuery Mobile操作HTML5的常用函数总结
2016/05/17 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
走进AngularJs之过滤器(filter)详解
2017/02/17 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
2017/02/28 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
2017/03/21 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
JavaScript 预解析的4种实现方法解析
2019/09/03 Javascript
盘点提高 Python 代码效率的方法
2014/07/03 Python
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
2015/11/07 Python
用Python实现筛选文件脚本的方法
2018/10/27 Python
pycharm运行程序时在Python console窗口中运行的方法
2018/12/03 Python
对Django 转发和重定向的实例详解
2019/08/06 Python
python NumPy ndarray二维数组 按照行列求平均实例
2019/11/26 Python
浅谈tensorflow中张量的提取值和赋值
2020/01/19 Python
会计自我鉴定
2014/02/04 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
项目建议书怎么写
2014/05/15 职场文书
社会实践活动总结范文
2014/07/03 职场文书
党小组推荐意见
2015/06/02 职场文书
golang json数组拼接的实例
2021/04/28 Golang
详解python网络进程
2021/06/15 Python
Elasticsearch 基本查询和组合查询
2022/04/19 Python
MySQL 数据库范式化设计理论
2022/04/22 MySQL