iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >css怎么实现无限轮播图动画
  • 848
分享到

css怎么实现无限轮播图动画

2024-04-02 19:04:59 848人浏览 独家记忆
摘要

这篇文章主要介绍CSS怎么实现无限轮播图动画,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   1、设置动画的舞台   html与之前文章里的示例非常相似。我们要有一个动画发生的

这篇文章主要介绍CSS怎么实现无限轮播图动画,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

  1、设置动画的舞台

  html与之前文章里的示例非常相似。我们要有一个动画发生的舞台(#stage),一个将会旋转的div容器和一系列图像:

  <divid="stage">

  <divid="rotator"style="-WEBkit-animation-name:rotator;">

  <ahref="1.jpg"><imgsrc="1.jpg"width="140"></a>

  <ahref="2.jpg"><imgsrc="2.jpg"width="140"></a>

  <ahref="3.jpg"><imgsrc="3.jpg"width="140"></a>

  <ahref="4.jpg"><imgsrc="4.jpg"width="140"></a>

  <ahref="5.jpg"><imgsrc="5.jpg"width="140"></a>

  <ahref="6.jpg"><imgsrc="6.jpg"width="140"></a>

  <ahref="7.jpg"><imgsrc="7.jpg"width="140"></a>

  <ahref="8.jpg"><imgsrc="8.jpg"width="140"></a>

  </div>

  </div>

  内联样式属性引用下面的动画@keyframes。它需要内联而不是CSS,以便我们能够使用javascript停止和重新启动动画。

  2、在3D空间中布置照片

  CSS样式用于定位多张照片,首先围绕y轴旋转它们(垂直向上翻页),然后径向向外平移:

  #stage{

  margin:2emauto1em50%;

  height:140px;

  -webkit-perspective:1200px;

  -webkit-perspective-origin:050%;

  }

  #rotatora{

  position:absolute;

  left:-81px;

  }

  #rotatoraimg{

  padding:10px;

  border:1pxsolid#ccc;

  background:#fff;

  -webkit-backface-visibility:hidden;

  }

  #rotatora:nth-of-type(1)img{

  -webkit-transfORM:rotateY(-90deg)translateZ(300px);

  }

  #rotatora:nth-of-type(2)img{

  -webkit-transform:rotateY(-60deg)translateZ(300px);

  }

  #rotatora:nth-of-type(3)img{

  -webkit-transform:rotateY(-30deg)translateZ(300px);

  }

  #rotatora:nth-of-type(4)img{

  -webkit-transform:translateZ(300px);

  background:#000;

  }

  #rotatora:nth-of-type(5)img{

  -webkit-transform:rotateY(30deg)translateZ(300px);

  }

  #rotatora:nth-of-type(6)img{

  -webkit-transform:rotateY(60deg)translateZ(300px);

  }

  #rotatora:nth-of-type(n+7){display:none;}

  照片设置-81px的值代表向左移动,使前向照片在旋转轴上居中。距离是图像宽度的一半(140px/2)加上LHS图像填充(10px)和边框(1px)。

  该阶段需要设置立体的动画,舞台从页面的中心开始,因此旋转元素下的锚元素需要向后移动以使动画居中。

  我们只开始准备六张照片,左边三张,中间一张,右边两张。最左侧的照片(位置1)从左侧开始,因此仅在第一次旋转后才可见。

  当照片旋转时,它会消失(显示:无),并且新照片会附加到左侧,准备从位置1旋转。在7和更高的位置可以有任意数量的照片。只有当它们移动到可见位置时,它们才会出现。

  甚至可以在动画进行时使用ajax加载新照片。

  3、添加动画效果

  正如我们之前尝试的那样,不是将照片轮旋转整整360度,而是我们实际做的只是旋转30度(足以从一张照片到下一张照片):

  @-webkit-keyframesrotator{

  from{-webkit-transform:rotateY(0deg);}

  to{-webkit-transform:rotateY(30deg);}

  }

  #rotator{

  -webkit-transform-origin:00;

  -webkit-transform-style:preserve-3d;

  -webkit-animation-timing-function:cubic-bezier(1,0.2,0.2,1);

  -webkit-animation-duration:1s;

  -webkit-animation-delay:1s;

  }

  #rotator:hover{

  -webkit-animation-play-state:paused;

  }

  要使关键帧在其他浏览器中工作,请复制所有样式,替换-webkit-with-moz-和-ms-,如下面的示例代码块所示。

  动画完成后,它会触发一个JavaScript事件,您可以在下一节中阅读该事件。事件处理程序沿着照片移动,以便在动画重置时,而不是回到初始状态,照片都围绕圆圈移动了一步。

  为了更清楚地了解正在发生的事情,中心照片已在下面的演示中突出显示。在动画发生时,您将看到突出显示的节点旋转,然后重置回起始位置,但包含不同的照片。

  4、JavaScript添加动画控制器

  我们在此示例中需要JavaScript来检测动画何时结束,以便协调通过车轮重置移动的照片。没有这个,轮子只会在前两张照片之间交替出现。

  document.addEventListener("DOMContentLoaded",function(){

  varrotateComplete=function(){

  target.style.webkitAnimationName="";

  target.insertBefore(arr[arr.length-1],arr[0]);

  setTimeout(function(el){

  el.style.webkitAnimationName="rotator";

  },0,target);

  };

  vartarget=document.getElementById("rotator");

  vararr=target.getElementsByTagName("a");

  target.addEventListener("webkitAnimationEnd",rotateComplete,false);

  },false);

  对于每个WebKit样式和其他引用,存在Firefox(-moz-或Moz),Opera(-o-或O),甚至InternetExplorer(-ms-或ms)的替代品-我们必须忍受的混乱直到标准最终确定。

  要在Safari,Chrome,Firefox,Opera和InternetExplorer10中使用此功能,我们需要包含以下额外的设置:

  varrotateComplete=function(){

  with(target.style){

  webkitAnimationName=MozAnimationName=msAnimationName="";

  }

  target.insertBefore(arr[arr.length-1],arr[0]);

  setTimeout(function(el){

  with(el.style){

  webkitAnimationName=MozAnimationName=msAnimationName="rotator";

  }

  },0,target);

  };

  vartarget=document.getElementById("rotator");

  vararr=target.getElementsByTagName("a");

  target.addEventListener("webkitAnimationEnd",rotateComplete,false);

  target.addEventListener("animationend",rotateComplete,false);

  target.addEventListener("MSAnimationEnd",rotateComplete,false);

  目前尚不清楚为何需要setTimeout。我们不需要它来设置延迟,因为使用CSS完成,但没有setTimeout(甚至0ms)动画无法重新触发。

以上是“css怎么实现无限轮播图动画”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网html频道!

--结束END--

本文标题: css怎么实现无限轮播图动画

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • css怎么实现无限轮播图动画
    这篇文章主要介绍css怎么实现无限轮播图动画,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   1、设置动画的舞台   HTML与之前文章里的示例非常相似。我们要有一个动画发生的...
    99+
    2024-04-02
  • RollViewPager无限轮播怎么实现
    这篇文章主要介绍RollViewPager无限轮播怎么实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!支持无限循环。 触摸时会暂停播放,直到结束触摸一个延迟周期以后继续播放。 看起来就像这样。指示器可以为点可以为数...
    99+
    2023-05-30
    rollviewpager
  • android如何实现banner轮播图无限轮播效果
    小编给大家分享一下android如何实现banner轮播图无限轮播效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下效果展示第一步(权限配置)<uses-permission android:n...
    99+
    2023-05-30
    android banner
  • css轮播图怎么实现
    css轮播图实现方法:1、准备几张大小相同的图片。2、展示图片横排放在一个图片容器里。3、图片容器外再加一个展示容器。4、在图片容器上添加自定义动画。具体操作步骤:准备了3张大小相同的图片,将图片的文件名命名为1.png,2.png,3.p...
    99+
    2024-04-02
  • js怎么实现无限循环轮播图效果
    小编给大家分享一下js怎么实现无限循环轮播图效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!知识要点1.实现无限循环的原理:以...
    99+
    2024-04-02
  • android ViewPager实现一个无限轮播图
    上节我们实现了一个图片可以无限滑动的ViewPager,这一节我们需要自定义一个ViewPager来实现我们想要展现的布局 首先我们需要建一个包,然后新建一个java类,名字随便起 ...
    99+
    2024-04-02
  • CSS怎么实现图片轮播
    CSS怎么实现图片轮播?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在css中,可以使用animation属性和@keyframes规则来实现图片轮播效果。只需...
    99+
    2023-06-14
  • Android怎么实现无限循环和自动轮播
    要实现Android中的无限循环和自动轮播,可以使用ViewPager和PagerAdapter来实现。下面是实现的步骤:1. 创建...
    99+
    2023-10-18
    Android
  • css怎么实现轮播图效果
    这篇文章主要介绍css怎么实现轮播图效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在css中,可以使用“@keyframes”规则和“animation”属性定义动画来实现轮播图切换效果。动画是使元素从一种样式逐...
    99+
    2023-06-14
  • html怎么实现轮播图自动播放
    这篇文章主要介绍“html怎么实现轮播图自动播放”,在日常操作中,相信很多人在html怎么实现轮播图自动播放问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”html怎么实现轮播...
    99+
    2024-04-02
  • jquery实现无缝轮播图
    本文实例为大家分享了jquery实现无缝轮播图的具体代码,供大家参考,具体内容如下 实现功能(无缝轮播图Jquery) 利用移动定位进行无缝滚动,大体实现点击切换图片,每张图片对应一...
    99+
    2024-04-02
  • css如何实现轮播图
    这篇文章主要介绍了css如何实现轮播图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇css如何实现轮播图文章都会有所收获,下面我们一起来看看吧。具体操作步骤:1、准备了3张大小相同的图片,将图片的文件名命名为1...
    99+
    2023-07-04
  • android ViewPager如何实现一个无限轮播图
    这篇文章主要介绍android ViewPager如何实现一个无限轮播图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先我们需要建一个包,然后新建一个java类,名字随便起这个类我们需要随便继承自一个vi...
    99+
    2023-06-29
  • css如何实现全屏响应式带导航轮播图动画
    这篇文章主要为大家展示了“css如何实现全屏响应式带导航轮播图动画”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css如何实现全屏响应式带导航轮播图动画”这篇文...
    99+
    2024-04-02
  • 怎么利用纯CSS实现文字轮播与图片轮播
    本文小编为大家详细介绍“怎么利用纯CSS实现文字轮播与图片轮播”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么利用纯CSS实现文字轮播与图片轮播”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起...
    99+
    2024-04-02
  • Android中怎么用Gallery实现无限循环及自动轮播
    要实现Android中Gallery的无限循环和自动轮播功能,可以按照以下步骤进行操作: 在XML布局文件中,将Gallery控...
    99+
    2023-10-22
    Android Gallery
  • css如何实现图片轮播
    使用css实现图片轮播的方法:1.创建img标签,添加图片;2.使用position属性定位图片,设置宽高;3.使用@keyframescarousel属性设置图片轮播;使用css实现图片轮播的方法首先,在页面中创建对个img标签,并添加图...
    99+
    2024-04-02
  • 纯css如何实现轮播图banner自动轮换效果
    这篇文章主要为大家展示了纯css如何实现轮播图banner自动轮换效果,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“纯css如何实现轮播图banner自动轮换效果”这篇文章吧。css是什么意思cs...
    99+
    2023-06-08
  • android轮播图怎么实现
    要实现Android轮播图,可以使用ViewPager和PagerAdapter来实现。以下是实现步骤: 首先,在布局文件中添加...
    99+
    2023-10-26
    android
  • JavaScript怎么实现轮播图
    这篇文章主要介绍“JavaScript怎么实现轮播图”,在日常操作中,相信很多人在JavaScript怎么实现轮播图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript怎么实现轮播图”的疑惑有所...
    99+
    2023-06-25
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作