利用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 相关文章推荐
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
Jan 02 Javascript
js常用系统函数用法实例分析
Jan 12 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
Oct 09 Javascript
jQuery实现的自适应焦点图效果完整实例
Aug 24 Javascript
JS无缝滚动效果实现方法分析
Dec 21 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
Dec 22 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
May 30 Javascript
微信小程序 地图map实例详解
Jun 07 Javascript
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
Jul 20 jQuery
Jquery使用each函数实现遍历及数组处理
Jul 14 jQuery
JS中的变量作用域(console版)
Jul 18 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
Jul 24 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
php4的session功能评述(一)
2006/10/09 PHP
检查php文件中是否含有bom的函数
2012/05/31 PHP
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
详解WordPress开发中的get_post与get_posts函数使用
2016/01/04 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
php实现登录页面的简单实例
2019/09/29 PHP
初学JavaScript_03(ExtJs Grid的简单使用)
2008/10/02 Javascript
jQuery 前的按键判断代码
2010/03/19 Javascript
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
js综合应用实例简单的表格统计
2013/09/03 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
JavaScript数据结构和算法之图和图算法
2015/02/11 Javascript
jQuery+HTML5实现图片上传前预览效果
2015/08/20 Javascript
JavaScript实现相册弹窗功能(zepto.js)
2016/06/21 Javascript
Node.js中常规的文件操作总结
2016/10/13 Javascript
微信小程序实现根据字母选择城市功能
2017/08/16 Javascript
vue+Element-ui实现分页效果实例代码详解
2018/12/10 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
浅谈鸿蒙 JavaScript GUI 技术栈
2020/09/17 Javascript
vite2.0+vue3移动端项目实战详解
2021/03/03 Vue.js
Fiddler如何抓取手机APP数据包
2016/01/22 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
全面了解django的缓存机制及使用方法
2019/07/22 Python
解决pycharm 安装numpy失败的问题
2019/12/05 Python
Python 通过监听端口实现唯一脚本运行方式
2020/05/05 Python
python跨文件使用全局变量的实现
2020/11/17 Python
Linux系统下升级pip的完整步骤
2021/01/31 Python
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
大学生求职简历的自我评价
2013/10/21 职场文书
冬季作息时间调整通知
2015/04/24 职场文书
幼儿园小班教育随笔
2015/08/14 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
Python利用folium实现地图可视化
2021/05/23 Python
elementui的el-popover修改样式不生效的解决
2021/06/30 Javascript
vue 给数组添加新对象并赋值
2022/04/20 Vue.js