【发布时间】:2013-07-31 19:31:05
【问题描述】:
我正在使用 smootdivscroll 在网站上显示产品。产品全部加载到一个大 div 中,然后使用 smootdivscroll 脚本左右滚动。我在左右两侧设置了在悬停或单击时滚动的箭头。
我想禁用鼠标悬停滚动,只允许在单击箭头时滚动。
问候。
【问题讨论】:
标签: javascript jquery jquery-plugins
我正在使用 smootdivscroll 在网站上显示产品。产品全部加载到一个大 div 中,然后使用 smootdivscroll 脚本左右滚动。我在左右两侧设置了在悬停或单击时滚动的箭头。
我想禁用鼠标悬停滚动,只允许在单击箭头时滚动。
问候。
【问题讨论】:
标签: javascript jquery jquery-plugins
我认为它没有内置该功能。但是您可能可以使用这个公共方法:http://www.smoothdivscroll.com/publicMethods.html#move
在选项中禁用hotSpotScrolling,并将一些点击事件监听器绑定到那些将触发move()方法的箭头。
【讨论】:
在阅读了这方面的文档后,如果不破解插件是不可能的。热点监听悬停和点击,你不能在没有另一个的情况下禁用一个。
如果您选择(不建议)破解,这里是https://github.com/tkahn/Smooth-Div-Scroll/blob/master/js/jquery.smoothDivScroll-1.3.js#L195
您需要删除除mousedown 和mouseup 之外的所有侦听器。
【讨论】:
感谢您的帮助和想法,以下是我的解决方案。
首先禁用热点和热点滚动:
visibleHotSpotBackgrounds: "",
hotSpotScrolling: false
我创建了两个链接,后期更新为控制滚动的箭头图像:
<a title="Scroll Left" href="#" onclick="MoveLeft();return false;">LEFT</a>
<a title="Scroll Right" href="#" onclick="MoveRight();return false;">RIGHT</a>
使用两个简单的函数将滚动前进+- 200px
<script type="text/javascript">
function MoveRight() {
$("#makeMeScrollable").smoothDivScroll("move", 200);
}
function MoveLeft() {
$("#makeMeScrollable").smoothDivScroll("move", -200);
}
</script>
平滑滚动效果集:
easingAfterMouseWheelScrolling: true
【讨论】: