老师,呼吸轮播图做出了没有效果,帮我看下
来源:4-12 编程练习
慕的地5368065
2021-05-27 11:14:11
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
.carousel {
width: 650px;
height: 360px;
border: 1px solid #000;
margin: 50px auto;
position: relative;
}
.carousel ul {
list-style: none;
}
.carousel ul li {
top: 0;
left: 0;
position: absolute;
/* 图片透明度为0 */
opacity: 0;
transition: opacity .5s ease 0s;
}
/* 只有第一张透明度为1 */
.carousel ul li:first-child{
opacity: 1;
}
.carousel .leftbtn {
left: 20px;
width: 50px;
height: 50px;
top: 50%;
margin-top: -25px;
background-color: rgba(0, 38, 255, 0.493);
position: absolute;
border-radius: 50%;
}
.carousel .rightbtn {
right: 20px;
width: 50px;
height: 50px;
top: 50%;
margin-top: -25px;
background-color: rgba(0, 38, 255, 0.493);
position: absolute;
border-radius: 50%;
}
</style>
</head>
<body>
<div class="carousel">
<ul id="list">
<li><img src="/images/beijing/0.jpg" alt=""></li>
<li><img src="/images/beijing/1.jpg" alt=""></li>
<li><img src="/images/beijing/2.jpg" alt=""></li>
<li><img src="/images/beijing/3.jpg" alt=""></li>
<li><img src="/images/beijing/4.jpg" alt=""></li>
</ul>
<a href="javascript:;" class="leftbtn" id="leftbtn"></a>
<a href="javascript:;" class="rightbtn" id="rightbtn"></a>
</div>
<script>
// 得到按钮和ul,ul整体进行运动
var leftbtn = document.getElementById('leftbtn');
var rightbtn = document.getElementById('rightbtn');
var list = document.getElementById('list');
var lis=list.getElementsByName('li');
// 当前是第几张图显示
var idx=0;
// 函数节流
var lock=true;
// 右按钮监听
rightbtn.onclick=function(){
// 判断锁的状态
if(!lock)return;
lock=false;
// 老图淡出
lis[idx].style.opacity=0;
idx++;
if(idx>4) idx=0;
lis[idx].style.opacity=1;
// 动画结束之后开锁
setTimeout(function(){
lock=true;
},1000);
}
// 左按钮监听
leftbtn.onclick=function(){
// 判断锁的状态
if(!lock)return;
lock=false;
// 老图淡出
lis[idx].style.opacity=0;
idx--;
if(idx<0) idx=4;
lis[idx].style.opacity=1;
// 动画结束之后开锁
setTimeout(function(){
lock=true;
},1000);
}
</script>
</body>
</html>
1回答
好帮手慕然然
2021-05-27
同学你好,呼吸轮播图没有效果,是因为代码中通过标签名获取元素的方法书写有误,正确书写为:getElementsByTagName,建议参考如下修改
祝学习愉快!
相似问题