原生js写简单轮播图方式2-淡入淡出

您所在的位置:网站首页 js实现简单轮播图的方式是哪个 原生js写简单轮播图方式2-淡入淡出

原生js写简单轮播图方式2-淡入淡出

2024-06-01 17:05| 来源: 网络整理| 查看: 265

之前写了从左向右滑动的轮播图,发现图片从最后一张滑到第一张效果不太好,于是又写了淡入淡出效果的轮播图,主要是利用CSS3的特性transition。

原理

  将图片叠加在一起,每次只有显示的图片透明度为1,其余的透明度都设置为0。 点击查看效果

HTML部分

  nav为总容器,第一个ul列表#index为小圆点列表,鼠标覆盖哪个小圆点就显现第几张图片,on是一个给小圆点添加背景颜色属性的类;第二个ul列表#img为图片列表,opa-on是给图片设置透明度为1的类。

Carousel Figure img1 img2 img3 img4 img5 CSS部分

  这里需要注意nav和ul#img设置的宽度均为720px,即一张图片的宽度。而且必须设置#img li中的position:absolute的设置,这个样式让图片均叠加在一起,图片之间没有先后顺序。如果position设置为relative,会因为li出现的先后关系只显示第一张图片,不管这张图片是显示还是隐藏,后面的图片会一直被第一张图片覆盖。

css3中的transition

  transition是css3的样式, 它允许css的属性值在一定时间内平滑的过渡。 语法是这样的:transition: property duration timing-function delay   property:是css的属性值,比如opacity、border-radius等,也可以是all,表示所有的css属性。   duration:表示过渡的时间。   timing-function:表示执行动画的函数。   delay:表示执行动画的延迟时间。 transition: opacity 1s ease-in;表示opacity在1s内以ease-in的函数实现过渡效果。

*{ margin:0; padding:0; } nav{ width: 720px; height: 405px; margin:20px auto; overflow: hidden; position: relative; } #index{ position: absolute; left:320px; bottom: 20px; } #index li{ width:8px; height: 8px; border: solid 1px gray; border-radius: 100%; background-color: #eee; display: inline-block; } #img{ width: 720px; height: 405px; } #img li{ width: 720px; height: 405px; position: absolute;/*必须设置为absolute,否则第一个li会把后面的都覆盖*/ z-index: -1; opacity: 0; transition: opacity 1s ease-in; } #index .on{ background-color: black; } #img .opa-on{ opacity: 1; } JavaScript部分 移动函数

  图片移动的函数和小圆点移动的函数是差不多的,只不过是类的区别,一个是on,另一个是opa-on。先清除之前的样式,然后在当前图片或小圆点的li上动态添加样式。

function moveImg(list,index) { for(var i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3