下面的代码应该能够根据nanoscroller 文档pane
触发和slider
适当的 css 属性。但是,滚动条不会显示,直到我在浏览器中执行一些操作,例如按 F12 启动萤火虫或右键单击内部元素以检查它。可能出了什么问题?display
slider
$(".nano").nanoScroller({
alwaysVisible: true,
scroll: "bottom"
});
下面的代码应该能够根据nanoscroller 文档pane
触发和slider
适当的 css 属性。但是,滚动条不会显示,直到我在浏览器中执行一些操作,例如按 F12 启动萤火虫或右键单击内部元素以检查它。可能出了什么问题?display
slider
$(".nano").nanoScroller({
alwaysVisible: true,
scroll: "bottom"
});
至少在 v0.7.4 版本中,如果您nanoScroller()
使用参数调用插件的初始化可能会失败,尤其是动态内容。
如果您正在使用,请确保在动画完成时完成$('#yourDiv').animate()
调用。nanoScroller()
如果您正在使用$.getJSON()
,请在正确获取内容后执行此操作。如果您同时使用两者animate()
并在两个事件之后getJSON()
调用nanoScroller()
,因为不知道哪个进程将首先完成,并且多次调用nanoScroller()
不会破坏任何东西。
这里的解决方法是:首先nanoScroller()
不带参数调用,如果需要参数,则在再次调用之后立即调用。
$('.nano').nanoScroller();
$('.nano').nanoScroller({ alwaysVisible: true, scroll: 'top' });
在某些情况下,比如我的,nanoScroller 需要首先知道图片的宽度/高度才能正常工作。
我如何修复它:
而不是调用函数,有/没有 .ready 处理程序,
$(".nano").nanoScroller({
alwaysVisible: true,
scroll: "bottom"
});
尝试 .load 处理程序。现在 JQuery 仅在图片的宽度/高度已知时才加载 nanoScroller。
$(window).load(function () {
$(".nano").nanoScroller({
alwaysVisible: true,
scroll: "bottom"
});
});
当nanoscroller 无法为元素正确初始化时,会出现此问题。
确保具有 nano 类的元素不在使用display:none
CSS 属性隐藏的父元素中。
在另一种情况下,如果内容没有显示,您需要确保已为具有类 nano 的元素设置了适当的高度。
如果要动态加载内容,则只需在加载内容后初始化 nanoScroller。
尝试将 nanoScroller 初始化包含在这样的 setTimeout 中。
setTimeout( function(){
$('.nano').nanoScroller({ flashDelay: 1000 });
}, 0);
我有同样的问题,这为我解决了。
我的问题和你的一样。可能出现问题是因为我将 nanoScroller 函数应用于动态生成的内容。我的解决方案是添加以下行:
$(".pane").css("display","block"); $(".slider").css("display","block");
然后问题就消失了!如果您通过 Chrome 中的“检查元素”功能检查页面,您可以看到滚动条(滑块)存在的 .pane 类表明
样式=“显示:无”
我希望这对你有帮助。
确保在所有内容加载完毕后触发 Nanoscroller;例如,尝试将上面的代码放在页面底部,或者插入一些 JQuery 代码来检查页面是否已经完成加载内容。
请更正代码(jquery.nanoscroller.js)
if ((content.scrollHeight === content.clientHeight) || (this.pane.outerHeight(true) >= content.scrollHeight && contentStyleOverflowY !== SCROLL)) {
this.pane.hide();
/*this.isActive = false;*/
} else if (this.el.clientHeight === content.scrollHeight && contentStyleOverflowY === SCROLL) {
this.slider.hide();
} else {
this.slider.show();
}
无论您的内容是否调整大小,此解决方案在所有情况下都非常有用。尝试这个:
$('your div id here').mouseover(function(){
$('.nano').nanoScroller();
});