原生JS实现的自动轮播图功能详解

本文实例讲述了原生JS实现的自动轮播图功能。分享给大家供大家参考,具体如下:

轮播图的用处

轮播图是现在网站网页上最常见的效果之一,很多网站上都会用到,淘宝京东等等。有些自动选项卡也是需要用到的,而且它的可重复性高。在这里分享一下,用js原生代码,实现轮播图的常见效果!

轮播图的原理

一系列的大小相等的图片平铺,利用CSS布局只显示一张图片,其余隐藏。通过定时器实现自动播放。

 

Html布局

首先父容器banner存放所有内容,子容器img-list存放图片。子容器list存放按钮小圆点。圆点我使用了背景图片的方式!

<div id="banner">

<ul id="img-list">

<li><img src="images/banner1.png" alt="1"/></li>

<li><img src="images/banner2.jpg" alt="2"/></li>

<li><img src="images/banner3.png" alt="3"/></li>

</ul>

<div id="list">

<span index="1" class="on"></span>

<span index="2"></span>

<span index="3"></span>

</div>

</div>

css修饰

1、对盒子模型,文档流的理解,绝对定位问题。

2、图片有固定的的宽高,先在img-list中设置三张图片总共的宽,多余的将overflow: hidden;进行隐藏!载将其图片下的li设置往右浮动。

3、将list span中的宽高固定,给个背景图片。第一张图片上设个默认的黄色圆点图片。

#banner {

width:100%;

padding:0;

clear: both;

position: relative;

height: 400px;

z-index:1;

}

#img-list {

display: block;

width:5760px;

height: 400px;

overflow: hidden;

z-index:1;

position: relative;

}

#img-list li{

float: left;

width:100%;

height: 400px;

overflow: hidden;

/* position: absolute;

top:0;

left:0; */

z-index: 2;

}

#list {

width:100%;

height:18px;

text-align: center;

position: absolute;

bottom: 10px;

z-index: 100;

}

#list > span {

width:18px;

height: 18px;

overflow: hidden;

display: inline-block;

margin:0 2px;

background: url(../images/yuan.png);

cursor: pointer;

}

#list .on {

background: url(../images/huanyu.png);

}

JS效果

1、首先我们先设置自动播放的函数

2、然后鼠标滑过容器时停止播放,鼠标离开整个容器时继续播放至下一张。

3、再定义并调用自动播放函数

var banner=document.getElementById('banner');

var imglist=document.getElementById('img-list').getElementsByTagName("li");

var list=document.getElementById('list').getElementsByTagName('span');

var index=0;

var timer=null;

//设置自动播放函数

function autoPlay () {

if (++index >= imglist.length) {index = 0};

changeImg(index);

}

// 鼠标划过整个容器时停止自动播放

banner.onmouseover = function () {

clearInterval(timer);

}

// 鼠标离开整个容器时继续播放至下一张

banner.onmouseout=function(){

timer=setInterval(autoPlay,2000);

}

// 定义并调用自动播放函数

timer = setInterval(autoPlay, 2000);

接着定义图片的切换函数

// 定义图片切换函数

function changeImg (curIndex) {

for (var i = 0; i < imglist.length; i++) {

imglist[i].style.display = "none";

list[i].className = "";

}

imglist[curIndex].style.display = "block";

list[curIndex].className = "on";

}

最后遍历所有数字导航实现划过切换至对应的图片,需获得它的索引值

for (var i = 0; i < list.length; i++) {

list[i].index=i;

list[i].onmouseover = function () {

clearInterval(timer);

changeImg(this.index);

};

到此为止,我们的轮播所有代码完成!

还不算完美,继续努力!

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript图片操作技巧大全》、《JavaScript切换特效与技巧总结》、《JavaScript运动效果与技巧汇总》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

以上是 原生JS实现的自动轮播图功能详解 的全部内容, 来源链接: utcz.com/z/342122.html

回到顶部