gpt4 book ai didi

javascript - 添加一个 'active' 类到幻灯片导航

转载 作者:行者123 更新时间:2023-11-29 22:09:03 24 4
gpt4 key购买 nike

我创建了一个幻灯片,它使用 jQuery 以一定间隔淡入和淡出图像。我在底部创建了一个导航区域,当您单击一个正方形时,它会显示该幻灯片。有两件事我需要帮助。

当您点击导航方 block 时,计时会停止,直到它转到下一个自然幻灯片。

我需要当前幻灯片的正方形是不同的颜色。我一直在尝试向具有匹配 ID 的方 block 添加一个类,但它没有添加一个类。

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

var newvar = setInterval(function() {
var currentslide = $('.current').attr('id');
$('#slideshow1 > div:first')
.fadeOut(1000)
.next()
.addClass('current')
.fadeIn(1000)
.end()
.removeClass('current')
.appendTo('#slideshow1');
$('.slider-nav').removeClass('active');
$('.slider-nav[data-number=' + currentslide + ']').addClass('active');
}, 5000);

$(".slider-nav").click(function(e){
e.preventDefault();
var currentID = $(this).attr('href');
$('#slideshow1 > div:first').fadeOut(1000);
$('div'+currentID).fadeIn(1000).nextAll("div.slide").addBack().prependTo("#slideshow1");
$('.slider-nav').removeClass('active');
$('.slider-nav[data-number=' + currentID + ']').addClass('active');
clearInterval(newvar);
newvar = setInterval(function() {
$('#slideshow1 > div:first')
.fadeOut(1000)
.next()
.addClass('current')
.fadeIn(1000)
.end()
.removeClass('current')
.appendTo('#slideshow1');
$('.slider-nav').removeClass('active');
$('.slider-nav[data-number=' + currentID + ']').addClass('active');
}, 5000);
});

此幻灯片所在的网站:http://saratoga.mspaceap.com/

最佳答案

你的问题在这里:

$('.slider-nav[id=' + currentID + ']').addClass('active');

因为 currentID 是一个像 #1 这样的字符串,因为你之前三行设置为:

var currentID = $(this).attr('href');

要修复,请将您的代码更改为:

$('.slider-nav[id=' + currentID.substr(1) + ']').addClass('active')
.siblings().removeClass('active'); // don't forget to do this

就是说:您的导航元素和幻灯片不应该有相同的 ID。 ID 应该始终是唯一的。我可以看到您正在使用 .attr('id') 来解决这个问题,但这仍然是不好的做法。使用通用的 data- 属性或像 nav1 这样的 id。

关于javascript - 添加一个 'active' 类到幻灯片导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19101143/

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