2012-07-24 78 views
6

我正在使用niceScroll jQuery插件来替换常见的浏览器滚动条在溢出<div>'s。该插件工作良好,但我不能得到它的工作和显示滚动轨道总是(即使内容不超过<div>界限)。我的最终配置是:总是显示niceScroll导轨

$(document).ready(function() { 
    $(".div-wrapper").niceScroll({ 
     cursorcolor: "#333", 
     cursoropacitymin: 0.3, 
     background: "#bbb", 
     cursorborder: "0", 
     autohidemode: false, 
     cursorminheight: 30 
    }); 
}; 

我试着火$(".div-wrapper").getNiceScroll().show(),但它似乎没有任何工作。

任何帮助,将不胜感激,谢谢

回答

6

首先,你有在末尾缺少括号 - 这可能是你的问题吗?

将autohidemode设置为false仅意味着当用户停止滚动并在滚动时再次出现时它不会消失。不幸的是,如果内容没有溢出,这并不意味着它是可见的。

作为一种变通方法,你可以尝试像这样的东西将这个元素与ID = ascrail2000您的来电.niceScroll(后明确可见):

$(document).ready(function() { 
    $(".div-wrapper").niceScroll({ 
     cursorcolor: "#333", 
     cursoropacitymin: 0.3, 
     background: "#bbb", 
     cursorborder: "0", 
     autohidemode: false, 
     cursorminheight: 30 
    }); 
    $('#ascrail2000').show(); 
}); 

查看丢失PAREN在最后一行

您可能需要使其子元素可见的还有:

$('#ascrail2000 *').show(); 

(确保元素”的ID是你的情况ascrail2000)

更新:如VERITAS指出,使用更普遍的选择div[id^='ascrail']代替#ascrail2000使它成为一个以上nicescroll工作在一个页面上,所以上面的可以做到使用JavaScript:

$("div[id^='ascrail']").show(); 

或CSS:

div[id^='ascrail'] { display: block; } 

,或者如果上述方法无效:

div[id^='ascrail'] { display: block !important; } 

这不是最优雅的解决方案,但恐怕这是目前解决此问题的唯一方法,因为nicescroll插件没有选择该行为的选项。幸运的是nicescroll是开源的,并且可以很容易地将它分叉并在GitHub上添加这样一个选项或者post a feature request

+0

谢谢,但我在我的问题是一个错字:/我不能在JavaScript(或CSS)中设置硬编码的'#ascrail ...'值,因为我可以在页面上有'n'滚动。但'+ 1'的努力和部分良好的答案。 – veritas 2012-07-24 16:35:11

+0

CSS selector'div [id^='ascrail'] {display:block; }'是这个问题的CSS解决方案,但我更喜欢别的东西。 – veritas 2012-07-24 16:36:57

+1

@veritas:恐怕目前没有更好的解决方案,但您始终可以发布功能请求以使其更容易 - 请参阅我的更新答案。 – rsp 2012-07-25 09:36:10

0

我假设,如果内容不溢出边界框,niceScroll什么都不做,这可能是你的问题。请记住,niceScroll不是> $ overflow:scroll; ...如果不通过插件本身进行挖掘,我不能确定,但​​我会假定它有内置的检查以测试内容是否需要滚动,如果它没有,那么这个函数默默地退出。

+0

插件在DOM中创建滚动'divs'并将它们的值设置为'display:none;'所以它确实有效。 – veritas 2012-07-24 11:02:10

6
$(".div-wrapper").niceScroll({ 
    cursorcolor: "#333", 
    cursoropacitymin: 0.3, 
    background: "#bbb", 
    cursorborder: "0", 
    autohidemode: false, 
    cursorminheight: 30 
}); 
0

我看到这个答案与谷歌搜索,即使是老了,这是我工作的解决方案,如果有人看到此寻求一个答案:

 $('#ascrail2000.nicescroll-rails').show(); 
     $('#ascrail2000.nicescroll-rails div').height('300px').show(); 

我需要设置一个任意高度“bar”div,因为默认情况下它的高度为:0px,即使您显示它,也看不到任何东西。 我想我们可以做得更好,用窗口尺寸计算好高度,但我不需要:)