1

我正在使用 Jquery UI Slider Widget 创建一个水平滚动网站。导航是通过左右按钮(悬停/单击滚动)和 ui 滑块。

一切工作正常,只是在通过单击滑块进行导航时无法平滑滚动。目前它只是跳转到新的 ui.value 位置。

我在这里设置了一个 jsFiddle:http: //jsfiddle.net/stellar/HXgwa/9/下面是我遇到的问题:

margin=Math.round(ui.value / 100 * (p - c));

if (slideDrag === false){
    scrollContent.animate({"margin-left" : margin+"px" }, 300);
}

奇怪的是,如果我将变量“边距”更改为过渡动画的确切数字,但当边距动态生成时,我似乎无法达到相同的效果。

任何帮助都会很棒,因为我已经为此苦苦挣扎了几个小时。

PS 我对 javascript 和 jquery 比较陌生,所以我希望我的代码符合标准 - 欢迎任何反馈:)

4

1 回答 1

0

如果你注释掉

scrollContent.animate({"margin-left" : margin+"px" }, 300);

您会注意到,当单击滑动条时,scrollContent 仍会移动到新位置。这意味着之后调用 animate 将不会执行任何操作,因为 margin-left 已经在代码的其他位置发生了变化。所以你需要在改变margin-left之前检查是否发生了拖动。

一个粗略的例子可以在这里找到(在两个地方寻找 //EDIT),http://jsfiddle.net/HXgwa/13/ 我没有检查你的代码只是在你的代码改变margin-left之前添加了一个与拖动相关的条件.

于 2013-10-04T08:26:35.637 回答