1 回答
TA贡献1772条经验 获得超5个赞
您的滑块的问题是完整的动画周期 = 1 次迭代,这意味着 和back
按钮forward
不能与此滑块一起使用,就像默认情况下一样。我删除了你的@keyframes
算法,将其替换为setInterval()
.
滑块完全用 JavaScript 编写。
还可以添加transition: 1s
以.carousel figure
实现平滑的幻灯片过渡。
在上一个任务中,我建议您display: table
在选择器中使用.carousel figure
。现在您需要将其替换为display: flex
.
let anime = document.querySelector('.carousel figure');
let left = document.querySelector('.main_carousel_left_arrow');
let right = document.querySelector('.main_carousel_right_arrow');
var step = 0;
function animate() {
if (step > -600) {
anime.style.transform = 'translateX('+ step +'vw)';
} else {
anime.style.transform = 'transformX(100vw)';
step = 100;
}
}
setInterval(function () {
step = step - 100;
animate();
}, 7000);
right.onclick = function() {
step = step - 100;
animate();
}
left.onclick = function() {
step = step + 100;
animate();
}
.carousel {
overflow: hidden;
}
.carousel figure {
position: relative;
width: 600vw;
transition: 1s;
display: flex;
margin: 0;
}
.carousel figure img {
width: 100vw;
}
.main_carousel_right_arrow {
font-size: 2vw;
padding: 5vw 2vw;
background-color: rgb(255, 255, 255);
top: 6%;
position: absolute;
right: 0px;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
}
.main_carousel_left_arrow {
font-size: 2vw;
padding: 5vw 2vw;
background-color: rgb(255, 255, 255);
top: 6%;
position: absolute;
left: 0px;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
}
<link rel="stylesheet" href="https://kit-pro.fontawesome.com/releases/v5.15.1/css/pro.min.css">
<div class="carousel">
<figure>
<a href="#"><img src="https://rukminim1.flixcart.com/flap/1688/280/image/a341a61df77a5715.jpg?q=50"></a>
<a href="#"><img src="https://rukminim1.flixcart.com/flap/1688/280/image/971922653b729a9e.jpg?q=50"></a>
<a href="#"><img src="https://rukminim1.flixcart.com/flap/1688/280/image/4075d3bac7ced1e9.jpg?q=50"></a>
<a href="#"><img src="https://rukminim1.flixcart.com/flap/1688/280/image/411e38f49c1486b4.jpg?q=50"></a>
<a href="#"><img src="https://rukminim1.flixcart.com/flap/1688/280/image/8c30d1a38636e9fa.jpg?q=50"></a>
<a href="#"><img src="https://rukminim1.flixcart.com/flap/1688/280/image/ce435d49852d2b8c.jpg?q=50"></a>
</figure>
<div>
<span class="main_carousel_left_arrow"><i class="fas fa-arrow-left"></i></span>
<span class="main_carousel_right_arrow"><i class="fas fa-arrow-right"></i></span>
</div>
</div>
添加回答
举报