返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何使用纯js + transition动画实现移动端web轮播图
  • 776
分享到

如何使用纯js + transition动画实现移动端web轮播图

2024-04-02 19:04:59 776人浏览 薄情痞子
摘要

这篇文章主要介绍了如何使用纯js + transition动画实现移动端WEB轮播图,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带

这篇文章主要介绍了如何使用纯js + transition动画实现移动端WEB轮播图,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

核心点:

在 我们通过代码来移动一段距离的时候, 使用 transion动画;在手指移动的时候,不使用transition动画.

使用 transition实现的动画效果的轮播图js代码不足100行

~function () { 
  var lastPX = 0; // 上一次触摸的位置x坐标, 需要计算出手指每次移动的一点点距离 
  var movex = 0; // 记录手指move的x方向值 
  var imgWrap = document.getElementById('imgWrap'); 
  var startX = 0; // 开始触摸时手指所在x坐标 
  var endX = 0; // 触摸结束时手指所在的x坐标位置 
  var imgSize = imgWrap.children.length - 2; // 图片个数 
  var t1 = 0; // 记录开始触摸的时刻 
  var t2 = 0; // 记录结束触摸的时刻 
  var width = window.innerWidth; // 当前窗口宽度 
  var nodeList = document.querySelectorAll('#imgWrap img'); // 所有轮播图节点数组 NodeList 
 
  // 给图片设置合适的left值, 注意 querySelectorAll返回 NodeList, 具有 forEach方法 
  nodeList.forEach(function (node, index) { 
   node.style.left = (index - 1) * width + 'px'; 
  }); 
 
   
  function toIndex(tIndex) { 
   var dis = -(tIndex * width); 
   // 动画移动 
   imgWrap.style.transfORM = 'translate3D(' + dis + 'px, 0, 0)'; 
   imgWrap.style.transition = 'transform .2s ease-out'; 
   movex = dis; 
   // 索引到最后一张图片, 迅速切换索引到同一张图的初始位置 
   setTimeout(function () { 
    if (tIndex === imgSize) { 
     imgWrap.style.transform = 'translate3d(0, 0, 0)'; 
     imgWrap.style.transition = 'none'; 
     movex = 0; 
    } 
    if (tIndex === -1) { 
     imgWrap.style.transform = 'translate3d(' + width * (1 - imgSize) + 'px, 0, 0)'; 
     imgWrap.style.transition = 'none'; 
     movex = -width * (imgSize - 1); 
    } 
   }, 200); 
 
  } 
 
   
  function touch(evt) { 
   var touch = evt.targetTouches[0]; 
   var tar = evt.target; 
   var index = parseInt(tar.getAttribute('data-index')); 
   if (evt.type === 'touchmove') { 
    var di = parseInt(touch.pageX - lastPX); 
    endX = touch.pageX; 
    movex += di; 
    imgWrap.style.webkitTransform = 'translate3d(' + movex + 'px, 0, 0)'; 
    imgWrap.style.transition = 'none'; // 移动时避免动画延迟 
    lastPX = touch.pageX; 
   } 
   if (evt.type === 'touchend') { 
    var minus = endX - startX; 
    t2 = new Date().getTime() - t1; 
    if (Math.abs(minus) > 0) { // 有拖动操作 
     if (Math.abs(minus) < width * 0.4 && t2 > 500) { // 拖动距离不够,返回! 
      toIndex(index); 
     } else { // 超过一半,看方向 
      console.log(minus); 
      if (Math.abs(minus) < 20) { 
       console.log('距离很短' + minus); 
       toIndex(index); 
       return; 
      } 
      if (minus < 0) { // endX < startX,向左滑动,是下一张 
       toIndex(index + 1) 
      } else { // endX > startX ,向右滑动, 是上一张 
       toIndex(index - 1) 
      } 
     } 
    } else { //没有拖动操作 
 
    } 
   } 
   if (evt.type === 'touchstart') { 
    lastPX = touch.pageX; 
    startX = lastPX; 
    endX = startX; 
    t1 = new Date().getTime(); 
   } 
   return false; 
  } 
 
  imgWrap.addEventListener('touchstart', touch, false); 
  imgWrap.addEventListener('touchmove', touch, false); 
  imgWrap.addEventListener('touchend', touch, false); 
  imgWrap.addEventListener('touchcancel', touch, false); 
 
 }();

注意事项:

当切换到边界值的图时,应该等到切换动画效果之后再换到相同图内容的位置

所以:   我们使用setTimeout延迟执行 无限循环播放替换图位置的操作

感谢你能够认真阅读完这篇文章,希望小编分享的“如何使用纯js + transition动画实现移动端web轮播图”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网JavaScript频道,更多相关知识等着你来学习!

--结束END--

本文标题: 如何使用纯js + transition动画实现移动端web轮播图

本文链接: https://lsjlt.com/news/75412.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用纯js + transition动画实现移动端web轮播图
    这篇文章主要介绍了如何使用纯js + transition动画实现移动端web轮播图,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带...
    99+
    2024-04-02
  • js如何实现移动端手指滑动轮播图效果
    这篇文章将为大家详细讲解有关js如何实现移动端手指滑动轮播图效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如下所示:<!DOCTYPE html>...
    99+
    2024-04-02
  • vue.js项目使用原生js实现移动端的轮播图
    目录前言一、了解原生js移动端的事件二、轮播图实战第一部分:template模板第一部分解读:第二部分:script标签内代码第二部分解读:第三部分:css样式部分三、效果图结束语前...
    99+
    2024-04-02
  • vue.js中怎么使用原生js实现移动端的轮播图
    这篇文章主要介绍“vue.js中怎么使用原生js实现移动端的轮播图”,在日常操作中,相信很多人在vue.js中怎么使用原生js实现移动端的轮播图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue.js中怎么...
    99+
    2023-06-30
  • 纯js如何实现轮播图效果
    这篇文章主要介绍纯js如何实现轮播图效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!效果图代码 css * {    margin: 0;&nb...
    99+
    2023-06-25
  • 纯css如何实现轮播图banner自动轮换效果
    这篇文章主要为大家展示了纯css如何实现轮播图banner自动轮换效果,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“纯css如何实现轮播图banner自动轮换效果”这篇文章吧。css是什么意思cs...
    99+
    2023-06-08
  • JavaScript+css+HTML实现移动端轮播图(含源码)
    目录1.移动轮播图2.案例分析3.关于anime.js1.移动轮播图 移动端轮播图与PC段轮播图,在技术选择上是有区别的,因为移动端的浏览器版本非常好,对于H5和CSS3的支持非常完...
    99+
    2024-04-02
  • js如何实现轮播图无缝滚动效果
    这篇文章主要介绍了js如何实现轮播图无缝滚动效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先文字说明一下:如果要展示5张图,分别为1,2...
    99+
    2024-04-02
  • JS+div如何实现匀速移动动画与变速移动动画
    这篇文章将为大家详细讲解有关JS+div如何实现匀速移动动画与变速移动动画,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.匀速移动代码<!DOCTYPE ...
    99+
    2024-04-02
  • web开发如何实现移动端下拉加载动画
    这篇文章给大家分享的是有关web开发如何实现移动端下拉加载动画的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  <!DOCTYPE html> &...
    99+
    2024-04-02
  • 使用纯CSS、JS实现图片轮播效果的示例
    小编给大家分享一下使用纯CSS、JS实现图片轮播效果的示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!js有什么特点1、js属于一种解释性脚本语言;2、在绝大多...
    99+
    2023-06-14
  • JS如何实现touch点击滑动轮播
    这篇文章将为大家详细讲解有关JS如何实现touch点击滑动轮播,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体代码如下所示:<script src=&q...
    99+
    2024-04-02
  • 原生Js如何实现简单无缝滚动轮播图
    这篇文章给大家分享的是有关原生Js如何实现简单无缝滚动轮播图的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。原简单的滚动轮播代码<html><head>   &...
    99+
    2023-06-15
  • 如何用js实现简单轮播图
    这篇文章主要介绍“如何用js实现简单轮播图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何用js实现简单轮播图”文章能帮助大家解决问题。1.实现功能:2.实现思路:(1)鼠标放到图片上,显示箭头,...
    99+
    2023-07-02
  • 移动端web如何实现滚动分页
    这篇文章给大家分享的是有关移动端web如何实现滚动分页的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。方法一:前端代码:<script type="tex...
    99+
    2024-04-02
  • 怎么使用js实现上下滑动轮播
    这篇“怎么使用js实现上下滑动轮播”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用js实现上下滑动轮播”文章吧。一、效...
    99+
    2023-07-02
  • 如何使用纯css实现水波动画
    这篇文章主要介绍了如何使用纯css实现水波动画,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。由于生成gif的工具比较弱(在线求好用的mac版...
    99+
    2024-04-02
  • Android如何使用ViewFlipper实现图片上下自动轮播
    这篇文章主要介绍了Android如何使用ViewFlipper实现图片上下自动轮播,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:先看效果:1.xml代码: ...
    99+
    2023-06-15
  • 如何使用jquery实现图片轮播和滑动效果
    这篇文章主要介绍了如何使用jquery实现图片轮播和滑动效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下实习做了一个简易的图片轮播效果下图是做出来的效果源码ht...
    99+
    2023-06-26
  • 基于CSS3的animation动画属性如何实现轮播图效果
    这篇文章将为大家详细讲解有关基于CSS3的animation动画属性如何实现轮播图效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。animation简介:CSS3的an...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作