1

我正在使用jquery.slimscroll 来替换浏览器的原生滚动条。

我发现有时使用它会导致浏览器的本机滚动条不响应鼠标滚动。

一种这样的情况:与可在元素上排序的 jqueryui 一起使用。不知何故,重新渲染元素后,浏览器滚动条停止工作。我可以在每个浏览器中始终如一地重现它,并且我编写了一个 jsfiddle 来重现它:

小提琴

function rerender(){
$("#wrapper").html($("#content").html());
$("#container").sortable({axis:"y",stop:function(){
    rerender();
}});
$("#container").slimScroll(
    {railVisible:true, height:"70px",start:"bottom"});
};

rerender();

它发生在其他场合,所以这个问题可能与 jqueryui sortable 无关。

有没有人看到类似的问题,你是如何解决的?

4

1 回答 1

1

我认为问题在某种程度上是 slimScroll 处理滚轮事件 - 它附加到窗口元素,因此当您重新创建包装器 html 时,您会删除以前的可滚动元素,但鼠标滚轮处理程序仍然存在并阻止窗口滚动。因此,理论上您必须在更新包装器 html 之前销毁自定义滚动条,然后重新初始化滚动条。但实际上 slimScroll 没有销毁方法。

您可以尝试许多其他滚动条插件:jQuery ScrollbarjScrollPaneMalihu Custom Scrollbar等...您可以在此处比较它们的功能

于 2014-04-19T08:54:51.917 回答