gpt4 book ai didi

javascript - 自动和手动滑动图像

转载 作者:太空宇宙 更新时间:2023-11-04 08:19:06 25 4
gpt4 key购买 nike

对于图像 slider ,我使用此代码

var sliderIndex = 0;

function initializeImageSlider() {
var sliderImages = $(".sliderImg");

for (var i = 0; i < sliderImages.length; i++) {
sliderImages[i].style.display = "none";
}
sliderIndex++;
if (sliderIndex > sliderImages.length) {
sliderIndex = 1;
}
sliderImages[sliderIndex-1].style.display = "block";
setTimeout(initializeImageSlider, 5000);
}

function changeSliderImage(direction) {
sliderIndex += direction;
alert("move " + direction);
}
#containerImageSlider {
width: 200px;
height: 200px;
}

.sliderImg{
width: 100%;
height: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body onLoad="initializeImageSlider()">

<button onclick="changeSliderImage(-1)">-</button>
<div id="containerImageSlider">
<img class="sliderImg" src="Resources/sliderImg1.png">
<img class="sliderImg" src="Resources/sliderImg2.png">
<img class="sliderImg" src="Resources/sliderImg3.png">
<img class="sliderImg" src="Resources/sliderImg4.png">
<img class="sliderImg" src="Resources/sliderImg5.png">
</div>
<button onclick="changeSliderImage(1)">+</button>

</body>

所以自动 slider 工作正常。现在我添加了两个按钮,它们调用函数 changeSliderImage(direction),我在其中传入一个用于向前或向后移动的值。

如您所见,目前我只是使用 initializeImageSlider() 函数来获得一个自动 slider 。

我怎样才能创建一个函数,让这个自动和手动过程发挥作用?

我不明白,如何为此拆分我的 initializeImageSlider() 函数。

最佳答案

您可以创建一个只更新 slider 的函数 updateImageSlider(),无论 sliderIndex 是增加还是减少。然后,每次倒计时达到 5 秒或用户单击按钮时,您只需调用此方法。

这段代码应该做你想做的:

var sliderIndex = 0;

function updateImageSlider() {
var sliderImages = $(".sliderImg");

for (var i = 0; i < sliderImages.length; i++) {
sliderImages[i].style.display = "none";
}
if (sliderIndex > sliderImages.length) {
sliderIndex = 1;
}
else if (sliderIndex < 1) {
sliderIndex = sliderImages.length;
}
sliderImages[sliderIndex-1].style.display = "block";
}

var autoSlideHandler; // To reset the timer
function incrementImageSlider() {
sliderIndex++;
updateImageSlider();
autoSlideHandler = setTimeout(incrementImageSlider, 5000);
}

function changeSliderImage(direction) {
// Move the slider
sliderIndex += direction;
updateImageSlider();
alert("move " + direction);
// Reset the timer
clearTimeout(autoSlideHandler);
autoSlideHandler = setTimeout(incrementImageSlider, 5000);
}

$(incrementImageSlider); // Initialize the slider, function called on page load

关于javascript - 自动和手动滑动图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45671192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com