我在使用jQuery UI滑块小部件时遇到了一些问题。我可以让滑块本身工作,但它不会滑过任何内容。你可以看到我在这里工作的网站: jquery slider problem
我希望在您使用处理程序滑动时,带有青色边框的div会滑过,但我根本无法让它工作。这是我目前使用的标志:
<div id="content-scroll" class="reference-scroller">
<div id="content-holder" class="reference-content">
<div id="content-slider"></div>
<ul>
<li class="content-item">test1</li>
<li class="content-item">test2</li>
<li class="content-item">test3</li>
<li class="content-item">test4</li>
<li class="content-item">test5</li>
.....
</ul>
</div>
</div>
滑块插件启动如下:
$("#content-slider").slider({
animate: true,
change: handleSliderChange,
slide: handleSliderSlide
});
function handleSliderChange(e, ui)
{
var maxScroll = $("#content-scroll").attr("scrollWidth") - $("#content-scroll").width();
$("#content-scroll").animate({scrollLeft: ui.value * (maxScroll / 100) }, 1000);
}
function handleSliderSlide(e, ui)
{
var maxScroll = $("#content-scroll").attr("scrollWidth") - $("#content-scroll").width();
$("#content-scroll").attr({scrollLeft: ui.value * (maxScroll / 100) });
}
有没有人对此提出建议? :-)非常感谢任何输入!
一切顺利,
博
答案 0 :(得分:2)
jQuery 1.6.1区分attr()和prop(),所以我改变了:
function handleSliderChange(e, ui)
{
var maxScroll = $("#content-scroll").attr("scrollWidth") - $("#content-scroll").width();
$("#content-scroll").animate({scrollLeft: ui.value * (maxScroll / 100) }, 1000);
}
function handleSliderSlide(e, ui)
{
var maxScroll = $("#content-scroll").attr("scrollWidth") - $("#content- scroll").width();
$("#content-scroll").attr({scrollLeft: ui.value * (maxScroll / 100) });
}
要:
function handleSliderChange(e, ui)
{
var maxScroll = $("#content-scroll").prop("scrollWidth") - $("#content-scroll").width();
$("#content-scroll").animate({scrollLeft: ui.value * (maxScroll / 100) }, 1000);
}
function handleSliderSlide(e, ui)
{
var maxScroll = $("#content-scroll").prop("scrollWidth") - $("#content-scroll").width();
$("#content-scroll").prop({scrollLeft: ui.value * (maxScroll / 100) });
}
现在它的工作正常!