利用div+jquery自定義滾動條樣式的2種方法
更新時間:2013年07月18日 17:32:27 作者:
可以設置左邊菜單項div的overflow-x:auto;overlfow-y:auto;這樣就會自動生成了滾動條,但是大家都知道自帶的不好看。接下來就是重點了,如何修改滾動條的樣式呢?感興趣的朋友可以了解下本文
最近做項目中有一個模塊是用于實時監(jiān)控的,左邊有個菜單欄用于顯示所有的設備,那當然是從數(shù)據(jù)庫中動態(tài)獲取的了,右邊是個iframe用于顯示監(jiān)控畫面。本來這個功能并不復雜,左邊的菜單項是利用dtree.js來實現(xiàn)的,可時當功能實現(xiàn)完成之后,卻發(fā)現(xiàn)一個問題,就是左邊菜單欄中的設備名有的會很長,會超出了div的長度,準確說是左邊iframe的寬度和長度不夠。那么,這時就必須要利用滾動條了,可以設置左邊菜單項div的overflow-x:auto;overlfow-y:auto;這樣就會自動生成了滾動條,但是大家都知道自帶的不好看。接下來就是重點了,如何修改滾動條的樣式呢?
經(jīng)過從網(wǎng)上的不斷搜索,發(fā)現(xiàn)有兩種方法:
第一種方法:利用CSS提供的樣式,一共是8種屬性吧,在這里不做詳細介紹,網(wǎng)上很多這方面的資料。
第二種方法:自己寫一個新的滾動條,即不用div自帶的滾動條。這樣想要什么樣的效果就有什么樣的效果。具體實現(xiàn),在網(wǎng)上搜了很多,可以發(fā)現(xiàn)基本上只有豎向滾動條,而沒有橫向滾動條,無奈之下,自己利用jquery寫另一個滾動條,當然也借鑒了只有豎向滾動條的程序。
說一下具體實現(xiàn)思路:目標div 即需要生成滾動條的div,里面嵌套了3個div,分別是用于顯示內(nèi)容的div_content,顯示豎向滾動條的div_H,顯示橫向滾動條的div_W,具體布局就是按照自帶滾動條的div的布局一樣,然后顯示滾動條的div即div_H和div_W有各自包含了3個div,即左右箭頭2個,滾動條1個。具體代碼如下:
if($(_self).children(".jscroll-c").height()==null){
//添加內(nèi)容框(div)
$(_self).wrapInner("<div class='jscroll-c' style='top:0px;z-index:9999;zoom:1;position:relative;'></div>");
//添加豎向滾動條
$(_self).append("<div class='jscroll-e' unselectable='on' style='height:97.5%;top:0px;right:0;-moz-user-select:none;position:absolute;overflow:hidden;z-index:10000;'><div class='jscroll-u' style='position:absolute;top:0px;width:100%;right:0;background:blue;overflow:hidden'></div><div class='jscroll-h' unselectable='on' style='background:green;position:absolute;left:0;-moz-user-select:none;border:1px solid'></div><div class='jscroll-d' style='position:absolute;bottom:0px;width:100%;left:0;background:blue;overflow:hidden'></div></div>");
//添加橫向滾動條
$(_self).append("<div class='jscroll-s' unselectable='on' style='width:180px;bottom:0px;left:0;-moz-user-select:none;position:absolute;overflow:hidden;z-index:10000;'><div class='jscroll-l' style='position:absolute;bottom:0px;height:100%;left:0;background:blue;overflow:hidden'></div><div class='jscroll-g' unselectable='on' style='height:100%;background:green;position:absolute;left:0;-moz-user-select:none;border:1px solid'></div><div class='jscroll-r' style='position:absolute;bottom:0px;height:100%;right:0;background:blue;overflow:hidden'></div></div>");
}
然后無非就是一些判斷,div的內(nèi)容是否超過了div的范圍,監(jiān)聽事件的添加。具體代碼可見我的下載資源;
經(jīng)過從網(wǎng)上的不斷搜索,發(fā)現(xiàn)有兩種方法:
第一種方法:利用CSS提供的樣式,一共是8種屬性吧,在這里不做詳細介紹,網(wǎng)上很多這方面的資料。
第二種方法:自己寫一個新的滾動條,即不用div自帶的滾動條。這樣想要什么樣的效果就有什么樣的效果。具體實現(xiàn),在網(wǎng)上搜了很多,可以發(fā)現(xiàn)基本上只有豎向滾動條,而沒有橫向滾動條,無奈之下,自己利用jquery寫另一個滾動條,當然也借鑒了只有豎向滾動條的程序。
說一下具體實現(xiàn)思路:目標div 即需要生成滾動條的div,里面嵌套了3個div,分別是用于顯示內(nèi)容的div_content,顯示豎向滾動條的div_H,顯示橫向滾動條的div_W,具體布局就是按照自帶滾動條的div的布局一樣,然后顯示滾動條的div即div_H和div_W有各自包含了3個div,即左右箭頭2個,滾動條1個。具體代碼如下:
復制代碼 代碼如下:
if($(_self).children(".jscroll-c").height()==null){
//添加內(nèi)容框(div)
$(_self).wrapInner("<div class='jscroll-c' style='top:0px;z-index:9999;zoom:1;position:relative;'></div>");
//添加豎向滾動條
$(_self).append("<div class='jscroll-e' unselectable='on' style='height:97.5%;top:0px;right:0;-moz-user-select:none;position:absolute;overflow:hidden;z-index:10000;'><div class='jscroll-u' style='position:absolute;top:0px;width:100%;right:0;background:blue;overflow:hidden'></div><div class='jscroll-h' unselectable='on' style='background:green;position:absolute;left:0;-moz-user-select:none;border:1px solid'></div><div class='jscroll-d' style='position:absolute;bottom:0px;width:100%;left:0;background:blue;overflow:hidden'></div></div>");
//添加橫向滾動條
$(_self).append("<div class='jscroll-s' unselectable='on' style='width:180px;bottom:0px;left:0;-moz-user-select:none;position:absolute;overflow:hidden;z-index:10000;'><div class='jscroll-l' style='position:absolute;bottom:0px;height:100%;left:0;background:blue;overflow:hidden'></div><div class='jscroll-g' unselectable='on' style='height:100%;background:green;position:absolute;left:0;-moz-user-select:none;border:1px solid'></div><div class='jscroll-r' style='position:absolute;bottom:0px;height:100%;right:0;background:blue;overflow:hidden'></div></div>");
}
然后無非就是一些判斷,div的內(nèi)容是否超過了div的范圍,監(jiān)聽事件的添加。具體代碼可見我的下載資源;
相關文章
jQuery實現(xiàn)發(fā)送驗證碼控制按鈕禁用功能
最近接到新需求,需要實現(xiàn)一個點擊發(fā)送驗證碼之后,按鈕禁用,在5秒之后取消禁用,看似需求很簡單,實現(xiàn)起來還真的好好動動腦筋,下面小編把jquery控制按鈕禁用核心代碼分享給大家,需要的朋友參考下吧2021-07-07jquery實現(xiàn)每個數(shù)字上都帶進度條的幻燈片
瀏覽網(wǎng)頁時不小心會碰到這樣的一個網(wǎng)站有幻燈片而且每個數(shù)字上面都帶有進度條閑的無聊,自己用jquery實現(xiàn)了一個,因為有一個進度條的播放過程暫不支持ie6,熱愛特效的你可不要錯過了哈2013-02-02jquery動態(tài)加載js/css文件方法(自寫小函數(shù))
jquery自帶的getSrcript文件只能動態(tài)加載js代碼,但不能加載css,后來自己寫了一個可加載js與css的程序2014-10-10jquery.combobox中文api和例子,修復了上面的小bug
關于jquery.combobox,這個jquery的插件從官網(wǎng)上直接下載下來使用還有bug,以下是我對其api做的簡單翻譯,而且修復了上面的bug。2011-03-03