2012-07-24 54 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,即使您顯示它,也看不到任何東西。 我想我們可以做得更好,用窗口尺寸計算好高度,但我不需要:)