我想覆盖浏览器的原生滚动条。
有很多jQuery滚动条插件,我尝试过大多数jQuery滚动条插件,例如jScrollPane
,PerfectScrollbar
,TinyScrollbar
等。我尝试将它们应用于body标签,如下所示:
$('html').css({"overflow":"hidden"}); //hide native scrollbars
$('body').perfectScrollbar({wheelSpeed:10});
//or
//$('#scrollbar').perfectScrollbar({wheelSpeed:10});
它的工作方式不正确!所以,我有一个动态生成的内容div,它的高度大于窗口的大小,但是没有卷轴。在我看来它只适用于一些固定大小的div。即使我在div
中包含一些动态内容,它也不起作用:
<body>
<div id='scrollbar'>
<div id=dynamicContent'>It is filled by jQuery ajax</div>
</div>
</body>
所以我的问题是如何修改任何jQuery滚动条插件以使用动态内容?我更喜欢使用TinyScrollbar
,因为它的尺寸较小或PerfectScrollbar
。
答案 0 :(得分:2)
我对PerfectScrollbar
也遇到了同样的问题,但是不使用自定义插件(在我的情况下它不起作用)我宁愿创建一个覆盖整个页面的div并将插件应用于DIV。此外,根据this,将自定义插件添加到正文中并不是一个好习惯。
首先,为身体添加风格。
body
{
position: fixed;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
并在身体后面用div包装整个页面。
$("body").wrapInner( "<div class='bodyScroll' style='overflow:auto;height:100%;position:relative'></div>");
$(".bodyScroll").perfectScrollbar();
答案 1 :(得分:1)
有一个名为Nicescroll的jQuery插件,有很多配置参数! 看看niceScroll。我正在使用它与jQuery版本1.11.0,它的工作完美。
以下是使用它的示例代码。
$(document).ready(function() {
var nice = $("html").niceScroll();
});
答案 2 :(得分:0)
如果是TinyScrollbar,你必须在可滚动元素上调用update()函数,并且每次元素的内容都会改变。
var scrollbar = $("body");
$(scrollbar).update();
答案 3 :(得分:0)
我将PerfectScrollbar
改为使用body标签。您可以获得here的源代码。
它在现实生活中如何运作,你可以在网站Nolesh.com上看到。如何使用它:
$('html').css({"overflow":"hidden"}); //hide native scrollbars
$('html, body').perfectScrollbar({wheelSpeed:50}); //apply PerfectScrollbar to body tag
//$('body').perfectScrollbar('update'); //to update
我希望它能节省别人的时间。