首页 > 其他 > 详细

轮播图练习

时间:2021-01-05 10:46:48      阅读:17      评论:0      收藏:0      [点我收藏+]

<!DOCTYPE html>

<html>

<head>

<title>轮播图 1</title>

<style type="text/css">

ul{

list-style: none;

}

.imgs{

width:590px;

height:470px;

overflow: hidden;

}

.dots{

width:164px;

position:absolute;

            left:250px;

            top:450px;

            z-index: 999;

}

        .dot{

            width:10px;

            height:10px;

            border:2px solid #fff;

            border-radius:10px;

            display: inline-block;

}

</style>

</head>

<body>

<div class="ad">

<ul id="imgs" class="imgs">

<li  class="img_li"><img src="img/1.jpg"></li>

<li  class="img_li"><img src="img/2.jpg"></li>

<li  class="img_li"><img src="img/3.jpg"></li>

<li  class="img_li"><img src="img/4.jpg"></li>

<li  class="img_li"><img src="img/5.jpg"></li>

<li  class="img_li"><img src="img/6.jpg"></li>

</ul>

<ul class="dots">

<li data=‘0‘ class="dot" style="</li>

<li data=‘1‘ class="dot"></li>

<li data=‘2‘ class="dot"></li>

<li data=‘3‘ class="dot"></li>

<li data=‘4‘ class="dot"></li>

<li data=‘5‘ class="dot"></li>

</ul>

</div>

 

<script type="text/javascript">

//简单轮播图 1  图片自动切换

//写法 1 设置定时器  移动图片

// setInterval(function(){

// //每隔一秒,将第一张图片移动到最后

// //获取第一张图片的 li

// // var li = document.querySelectorAll(‘.img_li‘)[0];

// var li = document.querySelector(‘.img_li‘);

// var ul = document.getElementById(‘imgs‘);

// // var li = ul.firstElementChild;

// //将第一个 li 子元素 放到 ul 的最后一个子元素 位置

// ul.appendChild(li); //appendChild 向父元素 添加最后一个子元素

// }, 1000);

 

//写法 2 设置定时器 通过 css 进行控制图片的显示和隐藏

// var num = 0;

// setInterval(function(){

// num++;

// //先将所有的图片都隐藏

// //获取所有的图片 li

// var img_lis = document.querySelectorAll(‘.img_li‘);

// //遍历数组,对每一张图片的 li,设置 css 样式 display none

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

// // img_lis[i]  一个一个的 li 标签

// img_lis[i].style.display = ‘none‘;

// }

// //将下标为 num 图片显示  对 num 下标的图片 li,设置设置 css 样式 display block

// if(num == img_lis.length){

// // 0 1 2 3 4 5  0 1 2 3 4 5 

// num = 0;

// }

// img_lis[num].style.display = ‘block‘;

// }, 1000);

// 

// 

// 

//简单轮播图 2  鼠标悬浮切换图片

//1) 使用自定义属性,保存小白圈下标

//先获取所有的小白圈的 li

// var dot_lis = document.querySelectorAll(‘.dot‘);

//遍历绑定鼠标悬浮事件

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

// //逐个绑定事件

// dot_lis[i].onmouseover = function(){

// //先隐藏所有图片,给所有的小白圈去掉背景色

// var img_lis = document.querySelectorAll(‘.img_li‘);

// for(var j=0; j<img_lis.length; j++){

// img_lis[j].style.display = ‘none‘;

// dot_lis[j].style.backgroundColor = ‘‘;

// }

// //当前的小白圈加背景色

// this.style.backgroundColor = ‘white‘;

// //显示对应的图片

// // 获取当前小白圈的下标,用于获取对应的图片

// // console.log( this );

// // console.log( this.getAttribute(‘data‘) );

// // 在小白圈的 li 上自定义一个 data 属性 记录对应的下标

// var index = this.getAttribute(‘data‘);

// img_lis[index].style.display = ‘block‘;

// }

// }

// 

// 使用匿名函数自调用,保存下标 i

// var dot_lis = document.querySelectorAll(‘.dot‘);

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

// (function(i){ // for 循环 绑定事件,事件中 i 丢失问题

// // 函数形参 相当于在函数内部使用 var 定义了一个局部变量 var i = i;

// //逐个绑定事件

// dot_lis[i].onmouseover = function(){

// //先隐藏所有图片,给所有的小白圈去掉背景色

// var img_lis = document.querySelectorAll(‘.img_li‘);

// for(var j=0; j<img_lis.length; j++){

// img_lis[j].style.display = ‘none‘;

// dot_lis[j].style.backgroundColor = ‘‘;

// }

// //当前的小白圈加背景色

// this.style.backgroundColor = ‘white‘;

// //显示对应的图片

// // 获取当前小白圈的下标,用于获取对应的图片

// // console.log(i);

// img_lis[i].style.display = ‘block‘;

// }

// })(i);

// }

</script>

<script type="text/javascript">

//整合综合效果

//封装一个函数,根据一个数字参数,显示指定的图片

function change(n){

// 获取所有的图片 li、获取所有小白圈 li

var img_lis = document.querySelectorAll(‘.img_li‘);

var dot_lis = document.querySelectorAll(‘.dot‘);

//遍历数组

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

//将所有的图片都隐藏

img_lis[i].style.display = ‘none‘;

//将所有的小白圈背景色去掉

dot_lis[i].style.backgroundColor = ‘‘;

}

//根据下标参数 n,将指定的图片显示

img_lis[n].style.display = ‘block‘;

//根据下标参数 n,将指定的小白圈背景色加上

dot_lis[n].style.backgroundColor = ‘white‘;

}

 

//自动切换  num 变量 和 timer 变量 一定要是全局变量

var num = 0;

// var timer = setInterval(function(){

// //获取所有的图片的 li,用于后续获取长度

// var img_lis = document.querySelectorAll(‘.img_li‘);

// num++;

// //num 是作为下标,显示图片的,不能超出最大下标

// if(num == img_lis.length){

// num = 0;

// }

// //根据 num 显示对应的图片

// change(num);

// }, 1000);

var timer;

function setTimer(){

timer = setInterval(function(){

//获取所有的图片的 li,用于后续获取长度

var img_lis = document.querySelectorAll(‘.img_li‘);

num++;

//num 是作为下标,显示图片的,不能超出最大下标

if(num == img_lis.length){

num = 0;

}

//根据 num 显示对应的图片

change(num);

}, 1000);

}

setTimer();

//鼠标悬浮切换图片

//获取所有的小白圈,循环绑定事件

var dot_lis = document.querySelectorAll(‘.dot‘);

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

(function(i){

//函数内部 i 变成了局部变量

dot_lis[i].onmouseover = function(){

//鼠标悬浮小白圈,停止自动切换的定时器

clearInterval(timer);

//获取悬浮的小白圈的下标

//调用 change 函数

change(i);

//如果需要让自动切换图片按照以前顺序继续,则设置 num 的值为 i

num = i;

}

//鼠标离开小白圈,重新设置定时器

dot_lis[i].onmouseout = function(){

//调用封装的设置定时器的函数

setTimer();

}

})(i);

 

}

</script>

</body>

</html>

轮播图练习

原文:https://www.cnblogs.com/zgn521019/p/14233822.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!