利用div+jquery自定義滾動條樣式的2種方法
更新時間:2013年07月18日 17:32:27 作者:
可以設置左邊菜單項div的overflow-x:auto;overlfow-y:auto;這樣就會自動生成了滾動條,但是大家都知道自帶的不好看。接下來就是重點了,如何修改滾動條的樣式呢?感興趣的朋友可以了解下本文
最近做項目中有一個模塊是用于實時監(jiān)控的,左邊有個菜單欄用于顯示所有的設備,那當然是從數據庫中動態(tài)獲取的了,右邊是個iframe用于顯示監(jiān)控畫面。本來這個功能并不復雜,左邊的菜單項是利用dtree.js來實現的,可時當功能實現完成之后,卻發(fā)現一個問題,就是左邊菜單欄中的設備名有的會很長,會超出了div的長度,準確說是左邊iframe的寬度和長度不夠。那么,這時就必須要利用滾動條了,可以設置左邊菜單項div的overflow-x:auto;overlfow-y:auto;這樣就會自動生成了滾動條,但是大家都知道自帶的不好看。接下來就是重點了,如何修改滾動條的樣式呢?
經過從網上的不斷搜索,發(fā)現有兩種方法:
第一種方法:利用CSS提供的樣式,一共是8種屬性吧,在這里不做詳細介紹,網上很多這方面的資料。
第二種方法:自己寫一個新的滾動條,即不用div自帶的滾動條。這樣想要什么樣的效果就有什么樣的效果。具體實現,在網上搜了很多,可以發(fā)現基本上只有豎向滾動條,而沒有橫向滾動條,無奈之下,自己利用jquery寫另一個滾動條,當然也借鑒了只有豎向滾動條的程序。
說一下具體實現思路:目標div 即需要生成滾動條的div,里面嵌套了3個div,分別是用于顯示內容的div_content,顯示豎向滾動條的div_H,顯示橫向滾動條的div_W,具體布局就是按照自帶滾動條的div的布局一樣,然后顯示滾動條的div即div_H和div_W有各自包含了3個div,即左右箭頭2個,滾動條1個。具體代碼如下:
if($(_self).children(".jscroll-c").height()==null){
//添加內容框(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的內容是否超過了div的范圍,監(jiān)聽事件的添加。具體代碼可見我的下載資源;
經過從網上的不斷搜索,發(fā)現有兩種方法:
第一種方法:利用CSS提供的樣式,一共是8種屬性吧,在這里不做詳細介紹,網上很多這方面的資料。
第二種方法:自己寫一個新的滾動條,即不用div自帶的滾動條。這樣想要什么樣的效果就有什么樣的效果。具體實現,在網上搜了很多,可以發(fā)現基本上只有豎向滾動條,而沒有橫向滾動條,無奈之下,自己利用jquery寫另一個滾動條,當然也借鑒了只有豎向滾動條的程序。
說一下具體實現思路:目標div 即需要生成滾動條的div,里面嵌套了3個div,分別是用于顯示內容的div_content,顯示豎向滾動條的div_H,顯示橫向滾動條的div_W,具體布局就是按照自帶滾動條的div的布局一樣,然后顯示滾動條的div即div_H和div_W有各自包含了3個div,即左右箭頭2個,滾動條1個。具體代碼如下:
復制代碼 代碼如下:
if($(_self).children(".jscroll-c").height()==null){
//添加內容框(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的內容是否超過了div的范圍,監(jiān)聽事件的添加。具體代碼可見我的下載資源;
相關文章
Jquery ajax加載等待執(zhí)行結束再繼續(xù)執(zhí)行下面代碼操作
這篇文章主要介紹了Jquery ajax加載等待執(zhí)行結束再繼續(xù)執(zhí)行下面代碼操作的相關資料,需要的朋友可以參考下2015-11-11
jquery 圖片Silhouette Fadeins漸顯效果
經常漂流在css-tricks看到這篇文章,就順便搬了過來,下面譯文都是用css-tricks口吻來描述的。2010-02-02
如何確保JavaScript的執(zhí)行順序 之jQuery.html深度分析
在上一篇文章《如何確保JavaScript的執(zhí)行順序 - 之實戰(zhàn)篇》中,我們發(fā)現jQuery的html函數能夠確保動態(tài)加載的JavaScript按照引入順序執(zhí)行。2011-03-03
基于JQuery的動態(tài)刪除Table表格的行和列的代碼
基于JQuery的動態(tài)刪除Table表格的行和列的代碼以前腳本之家也發(fā)布過相關的代碼,大家可以參考下。2011-05-05

