在升级到JQuery 1.7.1之前,垂直和水平滑块都工作正常。现在我升级到1.7.1,一切都停止了。以下是我的代码。
$("#HorizontalScrollBar").slider({
change: HorizontalHandleChange,
slide: HorizontalHandleSlide,
min: 0,
max: 100
});
$("#VerticalScrollBar").slider({
orientation: "vertical",
change: VerticalHandleChange,
slide: VerticalHandleSlide,
min: -100,
max: 0
});
水平滑块手柄的代码
function HorizontalHandleChange(e, ui) {
var maxScroll = $(".HorizontalScroll").attr("scrollWidth") - $(".HorizontalScroll").width();
$(".HorizontalScroll").animate({
scrollLeft: +ui.value * (maxScroll / 100)
}, 100);
}
function HorizontalHandleSlide(e, ui) {
var maxScroll = $(".HorizontalScroll").attr("scrollWidth") - $(".HorizontalScroll").width();
$(".HorizontalScroll").attr({
scrollLeft: +ui.value * (maxScroll / 100)
});
}
和垂直滑块手柄
function VerticalHandleChange(e, ui) {
var maxScroll = $(".VerticalScroll").attr("scrollHeight") - $(".VerticalScroll").height();
$(".VerticalScroll").animate({
scrollTop: -ui.value * (maxScroll / 100)
}, 100);
}
function VerticalHandleSlide(e, ui) {
var maxScroll = $(".VerticalScroll").attr("scrollHeight") - $(".VerticalScroll").height();
$(".VerticalScroll").attr({
scrollTop: -ui.value * (maxScroll / 100)
});
}
无论如何,我希望有人可以找到一个解决方案,让我的滑块使用JQuery 1.7.1。感谢。
仅供参考,滑块用于4个DIV,即。 Top,MidLeft,MidRight&底部,垂直滑块适用于MidLeft& MidRight虽然水平滑块适用于MidRight,Top和Bottom,但我不认为这可能是导致问题的原因。
答案 0 :(得分:2)
scrollWidth
和scrollHeight
是属性,使用.prop
方法获取和设置它们。
function HorizontalHandleChange(e, ui) {
var maxScroll = $(".HorizontalScroll").prop("scrollWidth") - $(".HorizontalScroll").width();
$(".HorizontalScroll").animate({
scrollLeft: +ui.value * (maxScroll / 100)
}, 100);
}
function HorizontalHandleSlide(e, ui) {
var maxScroll = $(".HorizontalScroll").prop("scrollWidth") - $(".HorizontalScroll").width();
$(".HorizontalScroll").attr({
scrollLeft: +ui.value * (maxScroll / 100)
});
}
function VerticalHandleChange(e, ui) {
var maxScroll = $(".VerticalScroll").prop("scrollHeight") - $(".VerticalScroll").height();
$(".VerticalScroll").animate({
scrollTop: -ui.value * (maxScroll / 100)
}, 100);
}
function VerticalHandleSlide(e, ui) {
var maxScroll = $(".VerticalScroll").prop("scrollHeight") - $(".VerticalScroll").height();
$(".VerticalScroll").attr({
scrollTop: -ui.value * (maxScroll / 100)
});
}
此更改来自jQuery 1.6,其中.attr
分为两个方法,.attr
和.prop
其中.attr
适用于属性,.prop
适用于属性