老师,麻烦您帮忙看一下,不知道为什么实现不了效果
来源:6-4 编写呼吸轮播特效
张艺兴的宝贝
2022-09-19 10:54:31
<!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 {
position: absolute;
top: 0;
left: 0;
opacity: 0;
transition: opacity .5s ease 0s;
}
.carousel ul li:first-child {
opacity: 1;
}
.carousel .btn {
width: 50px;
height: 50px;
background-color: aqua;
border-radius: 50%;
position: absolute;
top: 50%;
margin-top: -25px;
}
.carousel #leftbtn {
left: 20px;
}
.carousel #rightbtn {
right: 20px;
}
</style>
</head>
<body>
<div id="carousel" class="carousel">
<ul id="list" class="list">
<li><img src="../images/beijing/0.jpg"></li>
<li><img src="../images/beijing/1.jpg"></li>
<li><img src="../images/beijing/2.jpg"></li>
<li><img src="../images/beijing/3.jpg"></li>
<li><img src="../images/beijing/4.jpg"></li>
</ul>
<a href="javascript:;" id="leftbtn" class="btn"></a>
<a href="javascript:;" id="rightbtn" class="btn"></a>
</div>
<script>
var leftBtn = document.getElementById('leftbtn');
var rightBtn = document.getElementById('rightBtn');
var list = document.getElementById('list');
var lis = list.getElementsByTagName('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].stylie = 0;
idx--;
if(idx < 0) idx = 4;
lis[idx].style.opacity = 1;
setTimeout(function(){
lock = true;
},1000);
}
</script>
</body>
</html>
问题描述:
还有这个函数节流,不应该是进来先判断锁的状态,然后执行锁开着时的代码,然后再关锁吗?为什么这个判断完直接就关锁了
1回答
好帮手慕慕子
2022-09-19
同学你好,问题解答如下:
1、因为获取元素的id名书写有误,获取结果为空,无法绑定点击事件,导致效果无法实现。建议修改:

2、因为要防止短时间内多次点击按钮导致动画错乱的效果,所以先判断锁的状态,如果关锁的话,直接return返回,否则的话,调整为关锁,然后执行后面的代码,如果在代码执行期间再次点击按钮,就直接return返回了,不会再次执行后面的代码。
祝学习愉快~
相似问题