此滑块代码适用于较旧版本的jquery,例如jquery-1.5。但是当我尝试将它与最新版本的jquery-jquery-1.6集成时,它无法正常工作。
您可以尝试here - 当您沿着滑块时,内容不会滚动。当你向前和向后拖动内容时,内容应该沿着滑块滚动。
以下是一些代码,
function init_scrollbar ()
{
//scrollpane parts
scroll_frame = $('#scroll-frame'); // scroll-frame
scroll_content = $('#scroll-content'); // scroll-content
scroll_location_pixel = 0;
original_location_scroll_handle = 0;
original_width_scroll_content = scroll_content.width();
scrollbar = $('#content-slider').slider({
min: 0,
animate: true,
create: on_scrollcreate,
change: on_scrollchange,
slide: on_scrollslide
});
}
我认为事件slide
不起作用,这里是代码,
function on_scrollslide(event, ui)
{
var scroll_maximum = scroll_content.width() - scroll_frame.width();
scroll_frame.attr({scrollLeft: ui.value * (scroll_maximum / 100) });
}
知道我做错了什么吗?你能告诉我如何解决它吗?
感谢。
答案 0 :(得分:1)
从jQuery 1.6开始,使用.attr()方法 返回undefined的属性 没有设定。此外, .attr()不应该在plain上使用 对象,数组,窗口或 文献。检索和更改DOM 属性,使用.prop()方法。
这是一个有效的fiddle。
答案 1 :(得分:0)
现在,jQuery正在使用新的.prop()
方法正确区分属性和属性。
在on_scrollslide
功能中,将scroll_frame.attr({
更改为scroll_frame.prop({
:
function on_scrollslide(event, ui)
{
//var scroll_maximum = scroll_frame.attr("scrollWidth") - scroll_frame.width();
var scroll_maximum = scroll_content.width() - scroll_frame.width();
// change---vv
scroll_frame.prop({scrollLeft: ui.value * (scroll_maximum / 100) });
}
答案 2 :(得分:0)