轮播图是现在网站网页上最常见的效果之一,对于轮播图的功能,要求不同,效果也不同!我们见过很多通过不同的方式,实现这一效果,但是有很多比较麻烦,而且不容易理解,兼容性也不好。原生JS实现幻灯片的示例代码,具有很好的参考价值,在这里分享一下,用js原生代码,实现轮播图的常见效果!思路比较清晰,而且可重复性高,也几乎包含了现在网页上轮播实现的所有效果!
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
padding: 0;
margin: 0;
}
#fk{
width: 1200px;
height: 535px;
border: 2px solid blueviolet;
margin: 50px auto;
position: relative;
}
#fk img{
position: absolute;
top: 0;
left: 0;
display: none;
}
#fk ul{
position: absolute;
bottom: 23px;
left: 548px;
}
#fk ul li{
list-style: none;
width: 12px;
height: 12px;
background: #DDDDDD;
float: left;
margin-right: 8px;
border-radius: 50%;
}
</style>
<script type="text/javascript">
// 注意:多个方式控制同一块元素效果的时候,一定要走同一个变量 要不然手动切换,跟自动定时器的不能同步
window.onload = function(){
var fk = document.getElementById('fk');
var imgs = document.getElementsByTagName('img');
var lis = document.getElementsByTagName('li');
var t = 0; //大总管变量
// 控制函数切换的函数
function dd(){
t++; //2秒走一次变化+1
// 判断,只有五张图片,5个li,到3的时候返回去
if (t==5) {
t=0;
}
// 循环,让所有的图片隐藏,让所有的li变灰
for (var y=0;y<5;y++) {
imgs[y].style.display = 'none';
lis[y].style.background = '#DDDDDD'
}
// 让t号图片显示,t号li变红
imgs[t].style.display = 'block';
lis[t].style.background = '#A10000';
}
var timer = setInterval(dd,1000);
// var timer = setInterval(function(){
// t++; //1秒走一次变化+1
//// 判断,只有五张图片,五个li,到5的时候返回去
// if (t==5) {
// t=0;
// }
//// 循环,让所有的图片隐藏,让所有的li变灰
// for (var y=0;y<5;y++) {
// imgs[y].style.display = 'none';
// lis[y].style.background = '#DDDDDD'
// }
//// 让t号图片显示,t号li变红
// imgs[t].style.display = 'block';
// lis[t].style.background = '#A10000';
// },1000)
// 循环,加li加事件
for (var y=0;y<lis.length;y++) {
// 给y号li加序号
lis[y].sh = y;
// 给y号li加鼠标加移入事件
lis[y].onmouseover = function(){
// 先把lis移入的序号存到大总管变量t里,统一变量
t = this.sh;
// 这里移入鼠标就变手动的了,要停止上面的定时器
clearInterval(timer);
// alert(this.sh);
// 循环,让所有的图片隐藏,让所有的li变灰
for (var y=0;y<5;y++) {
imgs[y].style.display = 'none';
lis[y].style.background = '#DDDDDD'
}
// 让this.sh对应的图片显示
imgs[t].style.display = 'block';
lis[t].style.background = '#A10000';
// imgs[this.sh].style.display = 'block';
// lis[this.sh].style.background = '#A10000';
}
// 移入事件结束
// 鼠标移出事件 恢复定时器
lis[y].onmouseout =function(){
timer = setInterval(dd,1000);
}
// 鼠标移出事件结束
}
}
</script>
</head>
<body>
<div id="fk">
<img src="https://www.qiquanji.com/data/img/dmj/201903101552188163753008.jpg" alt="" style="display: block;"/>
<img src="https://www.qiquanji.com/data/img/dmj/201903101552188163335544.jpg" alt="" />
<img src="https://www.qiquanji.com/data/img/dmj/201903101552188164175308.jpg" alt="" />
<img src="https://www.qiquanji.com/data/img/dmj/201903101552188164956825.jpg" alt="" />
<img src="https://www.qiquanji.com/data/img/dmj/201903101552188164532873.jpg" alt="" />
<ul>
<li style="background: #A10000;"></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
</body>
</html>
代码效果图片
本文 2019年08月30日 最后编辑
原文链接:https://www.qiquanji.com/post/7721.html
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
微信扫码关注
更新实时通知
