【发布时间】:2015-07-24 13:34:54
【问题描述】:
我有一个简单的图像滑块,它的功能如下:
function slider(pocket, time){
$(pocket).find('> div:first').addClass('sn');
var nos = $(pocket).find('> div').length;
var timer = null;
function fadeNext() {
var currentSlide = $(pocket).find('> div.sn');
var nextSlide = $(currentSlide).next('div');
if(nextSlide.length == 0){
nextSlide = $(pocket).find('> div:first');
}
$(currentSlide).removeClass('sn').fadeOut(time);
$(nextSlide).addClass('sn').fadeIn(time);
}
function fadePrev() {
var currSlide = $(pocket).find('> div.sn');
var prevSlide = $(currSlide).prev('div');
if(prevSlide.length == 0){
prevSlide = $(pocket).find('> div:last');
}
$(currSlide).removeClass('sn').fadeOut(time);
$(prevSlide).addClass('sn').fadeIn(time);
}
$(pocket).find('.sl_next').on('click', function() {
fadeNext();
});
$(pocket).find('.sl_prev').on('click', function() {
fadePrev();
});
function startSlide(){
timer = setInterval(fadeNext, 3999);
}
if(time > 0 && nos > 1){
startSlide();
}
}
然后我这样调用函数:
slider('.manual', 0);
slider('.auto', 500);
..这就是问题所在;我有多组图像,具有“.manual”类的图像具有“上一个”和“下一个”按钮。具有“auto”类的那些将在图像之间自动旋转。
我在每组中有不同数量的图像,例如,我在 3 组中有 2、3、5 张图像,类别为“.auto”。滑块一开始会很好用,然后带有 2 和 3 个图像的集合将只是空白(所有图像将保持“显示:无”),直到具有 5 个图像的集合到达最后一个图像,而不是返回到第一个图像之后他们到达各自的最后一张图片。
所以最后只有最大图像集和手动集看起来正常,我想我需要帮助!谢谢!
【问题讨论】:
-
请添加重现问题中问题所需的最短代码。请参阅:How to create a Minimal, Complete, and Verifiable example。
-
您好,我尝试删除尽可能多的功能,只保留核心功能,我需要帮助。您可以看到与手动和自动滑块一样多的工作。我会尽量让它更短,我不是很有经验。很抱歉我使用了很多代码,以及您的时间,并感谢您的建议。
-
在这种情况下,不是让它更短而是完整的问题。现在您只显示 JS,但不显示 HTML 或 CSS 是如何完成的。我花了一段时间做了一个简单的演示来重现错误(here if someone is interested,虽然它可能不准确)。解决问题已经是一回事了,不要让用户猜测您的代码是什么样子或如何重现错误,从而使问题变得更加复杂。总结:帮助人们帮助你:)
-
知道了。我现在完全清楚了。非常感谢您制作示例!
标签: javascript jquery image