1 回答

TA貢獻1772條經驗 獲得超5個贊
您的滑塊的問題是完整的動畫周期 = 1 次迭代,這意味著 和back
按鈕forward
不能與此滑塊一起使用,就像默認情況下一樣。我刪除了你的@keyframes
算法,將其替換為setInterval()
.
滑塊完全用 JavaScript 編寫。
還可以添加transition: 1s
以.carousel figure
實現平滑的幻燈片過渡。
在上一個任務中,我建議您display: table
在選擇器中使用.carousel figure
?,F在您需要將其替換為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" >
<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>
添加回答
舉報