我有一个具有多个滑块(从http://www.switchonthecode.com/tutorials/using-jquery-slider-to-scroll-a-div)一个页面,因为他们每个人都是不同的div我只是重复的代码,并把它改为独特的类,把这个代码:多个jQuery滑块移动每个div在同一页面,任何方式来简化代码?
$(document).ready(function(){
$(".slider1").slider({
animate: true,
handle: ".handle1",
change: handleSliderChange1,
slide: handleSliderSlide1
});
$(".slider2").slider({
animate: true,
handle: ".handle2",
change: handleSliderChange2,
slide: handleSliderSlide2
});
$(".slider3").slider({
animate: true,
handle: ".handle3",
change: handleSliderChange3,
slide: handleSliderSlide3
});
});
function handleSliderChange1(e, ui)
{
var maxScroll = $(".gal1").attr("scrollWidth") - $(".gal1").width();
$(".gal1").animate({scrollLeft: ui.value * (maxScroll/100) }, 1000);
}
function handleSliderSlide1(e, ui)
{
var maxScroll = $(".gal1").attr("scrollWidth") - $(".gal1").width();
$(".gal1").attr({scrollLeft: ui.value * (maxScroll/100) });
}
function handleSliderChange2(e, ui)
{
var maxScroll = $(".gal2").attr("scrollWidth") - $(".gal2").width();
$(".gal2").animate({scrollLeft: ui.value * (maxScroll/100) }, 1000);
}
function handleSliderSlide2(e, ui)
{
var maxScroll = $(".gal2").attr("scrollWidth") - $(".gal2").width();
$(".gal2").attr({scrollLeft: ui.value * (maxScroll/100) });
}
function handleSliderChange3(e, ui)
{
var maxScroll = $(".gal3").attr("scrollWidth") - $(".gal3").width();
$(".gal3").animate({scrollLeft: ui.value * (maxScroll/100) }, 1000);
}
function handleSliderSlide3(e, ui)
{
var maxScroll = $(".gal3").attr("scrollWidth") - $(".gal3").width();
$(".gal3").attr({scrollLeft: ui.value * (maxScroll/100) });
}
虽然这工作得也很好,我有大约7这些幻灯片(只有3上面显示),我觉得有点重复基本上相同的代码...
有没有办法简化这段代码?
真棒,这正是我寻找。虽然在这种情况下,滑块必须在滑动内容之前......因为我可以用css处理它,所以它不成问题:D 非常感谢! :D – 2011-04-04 07:59:41
如果您需要以不同的顺序排列滑块和内容,则可以更改jQuery正在寻找的“兄弟”。如果滑块和内容是兄弟,也许使用[prev()](http://api.jquery.com/prev/)而不是next()。 – andyb 2011-04-04 08:45:57