利用div+jquery自定义滚动条样式的2种方法


Posted in Javascript onJuly 18, 2013

最近做项目中有一个模块是用于实时监控的,左边有个菜单栏用于显示所有的设备,那当然是从数据库中动态获取的了,右边是个iframe用于显示监控画面。本来这个功能并不复杂,左边的菜单项是利用dtree.js来实现的,可时当功能实现完成之后,却发现一个问题,就是左边菜单栏中的设备名有的会很长,会超出了div的长度,准确说是左边iframe的宽度和长度不够。那么,这时就必须要利用滚动条了,可以设置左边菜单项div的overflow-x:auto;overlfow-y:auto;这样就会自动生成了滚动条,但是大家都知道自带的不好看。接下来就是重点了,如何修改滚动条的样式呢?

经过从网上的不断搜索,发现有两种方法:

第一种方法:利用CSS提供的样式,一共是8种属性吧,在这里不做详细介绍,网上很多这方面的资料。

第二种方法:自己写一个新的滚动条,即不用div自带的滚动条。这样想要什么样的效果就有什么样的效果。具体实现,在网上搜了很多,可以发现基本上只有竖向滚动条,而没有横向滚动条,无奈之下,自己利用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的范围,监听事件的添加。具体代码可见我的下载资源;
Javascript 相关文章推荐
Javascript注入技巧
Jun 22 Javascript
js 获取浏览器高度和宽度值(多浏览器)
Sep 02 Javascript
javascript中普通函数的使用介绍
Dec 19 Javascript
jquery xMarquee实现文字水平无缝滚动效果
Apr 29 Javascript
IE6浏览器中window.location.href无效的解决方法
Nov 20 Javascript
nw.js实现类似微信的聊天软件
Mar 16 Javascript
javascript正则表达式定义(语法)总结
Jan 08 Javascript
JS中call/apply、arguments、undefined/null方法详解
Feb 15 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
Jun 02 Javascript
JS获取当前页面名称的简单实例
Aug 19 Javascript
Bootstrap 实现查询的完美方法
Oct 26 Javascript
详解前端路由实现与react-router使用姿势
Aug 07 Javascript
JavaScript实现复制功能各浏览器支持情况实测
Jul 18 #Javascript
GRID拖拽行的实例代码
Jul 18 #Javascript
去掉gridPanel表头全选框的小例子
Jul 18 #Javascript
gridpanel动态加载数据的实例代码
Jul 18 #Javascript
javaScript NameSpace 简单说明介绍
Jul 18 #Javascript
JS获取鼠标坐标的实例方法
Jul 18 #Javascript
非常好用的JsonToString 方法 简单实例
Jul 18 #Javascript
You might like
用PHP和ACCESS写聊天室(一)
2006/10/09 PHP
php中设置index.php文件为只读的方法
2013/02/06 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
eclipse php wamp配置教程
2016/06/30 PHP
smarty模板数学运算示例
2016/12/11 PHP
jQuery1.6 使用方法一
2011/11/23 Javascript
javascript对talbe进行动态添加、删除、验证实现代码
2012/03/29 Javascript
如何让浏览器支持jquery ajax load 前进、后退功能
2014/06/12 Javascript
省市区三级联动下拉框菜单javascript版
2015/08/11 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
JavaScript实现复制文章自动添加版权
2016/08/02 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
详解elementUI中input框无法输入的问题
2020/04/27 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
python使用pyqt写带界面工具的示例代码
2017/10/23 Python
通过Python模块filecmp 对文件比较的实现方法
2018/06/29 Python
Python做智能家居温湿度报警系统
2018/09/25 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
python设计微型小说网站(基于Django+Bootstrap框架)
2019/07/08 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
基于Python实现大文件分割和命名脚本过程解析
2019/09/29 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
HTML5 localStorage使用总结
2017/02/22 HTML / CSS
玩具反斗城葡萄牙官方商城:Toys"R"Us葡萄牙
2016/10/21 全球购物
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
洗煤厂厂长岗位职责
2014/01/03 职场文书
考试违纪检讨书
2014/02/02 职场文书
市场部业务员岗位职责
2014/04/02 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS
vue使用watch监听属性变化
2022/04/30 Vue.js