我正在处理这个 JavaScript 图像(和文本)滑块。
我在 JavaScript 中创建了一个幻灯片列表,并将其附加到 DOM 中的一个 div:
let slidesHtml = '<ul style="width: ' + slidesListWidth + '; transform: translateX(' + translateAmount + ')">';
for (let i = 0; i < slidesLen; i++) {
slidesHtml += '<li style="width: ' + slideWidth + '">' + '<img src="' + slides[i].image + '" alt="' + slides[i].text + '"><span class="text">' + slides[i].text + '</span></li>';
}
slidesHtml += '</ul>'
sliderControls.insertAdjacentHTML('afterend', slidesHtml);
在上面的代码中,translateAmount当 JavaScript 变量let translateAmount = 0更改其值(从 0 到不同的百分比)时不会更新。
let slides = [{
text: "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iusto fugiat enim voluptate eos placeat quis veniam quod inventore ipsum sapiente vel, earum, ratione neque.",
image: "https://picsum.photos/1200/600?gravity=east"
},
{
text: "Sit quis provident reiciendis sed optio molestias impedit maiores nesciunt!",
image: "https://picsum.photos/1200/600?gravity=west"
},
{
text: "Odio mollitia inventore nostrum quasi labore architecto quis id repudiandae quidem!",
image: "https://picsum.photos/1200/600?gravity=north"
}
];
let slider = document.getElementById('imageSlider');
let sliderControls = document.getElementById('sliderControls');
let slidesLen = slides.length;
let slidesListWidth = slidesLen + '00%';
let slideWidth = (1 / slidesLen * 100) + '%';
let clickCount = 0;
let translateAmount = 0;
function updateAmount() {
translateAmount = clickCount * 1 / slidesLen * 100 + '%';
console.log(translateAmount);
}
function nextSlide() {
if (Math.abs(clickCount) < slidesLen - 1) {
clickCount--;
} else {
clickCount = 0;
}
updateAmount();
}
function prevSlide() {
if (clickCount < 0) {
clickCount++;
} else {
clickCount = 1 - slidesLen;
}
updateAmount();
}
喵喔喔
莫回无
HUWWW
相关分类