div:gt(0)").hide(); var maxindex = $('#slideshow > d-6ren">
gpt4 book ai didi

Jquery - 幻灯片按钮功能代码

转载 作者:行者123 更新时间:2023-12-03 22:39:34 24 4
gpt4 key购买 nike

我这里有一个非常简单的幻灯片:fiddle
Jquery代码:

$("#slideshow > div:gt(0)").hide();

var maxindex = $('#slideshow > div').length;

var index = 0
var interval = 3 * 1000; // 3 seconds
var timerJob = setInterval(traverseSlideShow, interval);

function traverseSlideShow() {
console.log("current index: " + index);

$('#slideshow > div')
.stop()
.fadeOut(1000);
$('#slideshow > div').eq(index)
.stop()
.fadeIn(1000);

$('ul li').removeClass('active');
$('ul li:eq(' + index + ')').addClass('active');
index = (index < maxindex - 1) ? index + 1 : 0;

}

for (var i = 0; i < maxindex; i++) {
$('ul').append('<li class="' + (i == 0 ? 'active' : '') + '"></li>');
}

$(document).on('click', 'ul li', function () {
index = $(this).index();
traverseSlideShow();
clearInterval(timerJob);
timerJob = setInterval(traverseSlideShow, interval);
});

正如您所看到的,有三个按钮,单击任何按钮时,幻灯片都会自动转到与您单击的按钮相关的照片,并且您可以看到该按钮的样式发生变化(单击时经过3秒后)。
我正在尝试修复此代码中的一个问题。
好吧,我试图在任何按钮的样式更改后阻止点击任何按钮一秒钟,简单,如果你点击任何按钮,你不能在 1 秒内重新点击另一个按钮,也是如此,如果幻灯片自动加载一张照片,您将无法在 1 秒内通过单击任何其他按钮加载任何其他照片。

最佳答案

我会将一个标志作为 css 类添加到按钮:

工作 fiddle :http://jsfiddle.net/b_m_h/Jtec5/86/

该标志是一个 .enable css 类,只有带有 .enableli 是可点击的。

该事件仅监听 ul li.enable 上的 click:

...
$(document).on('click', 'ul li.enable', function () {
...

首先,所有按钮都应该是可点击的,因此为所有li添加.enable类:

for (var i = 0; i < maxindex; i++) {
$('ul').append('<li class="' + (i == 0 ? 'active' : '') + ' enable"></li>');
}

并在traverseSlideShow()中添加禁用li按钮并在1秒后重新启用它的机制:

function traverseSlideShow() {
...
$('ul li').removeClass('enable');
setTimeout(function(){
$('ul li').addClass('enable');
}, 1000);
}

关于Jquery - 幻灯片按钮功能代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18425003/

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