利用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 相关文章推荐
一个多次搜索+多次传值的解决方案
Jan 20 Javascript
自动完成JS类(纯JS, Ajax模式)
Mar 12 Javascript
jQuery实现切换字体大小的方法
Mar 10 Javascript
JS中改变this指向的方法(call和apply、bind)
Mar 26 Javascript
详谈innerHTML innerText的使用和区别
Aug 18 Javascript
vue侧边栏动态生成下级菜单的方法
Sep 07 Javascript
jQuery表单元素过滤选择器用法实例分析
Feb 20 jQuery
详解javascript中的Error对象
Apr 25 Javascript
Node对CommonJS的模块规范
Nov 06 Javascript
vue-cli4项目开启eslint保存时自动格式问题
Jul 13 Javascript
vue 实现setInterval 创建和销毁实例
Jul 21 Javascript
JS使用Chrome浏览器实现调试线上代码
Jul 23 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
解析func_num_args与func_get_args函数的使用
2013/06/24 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
smarty中改进truncate使其支持中文的方法
2016/05/30 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
javascript document.execCommand() 常用解析
2009/12/14 Javascript
jQuery ready函数滥用分析
2011/02/16 Javascript
javascript 中的try catch应用总结
2017/04/01 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
vue组件父子间通信之综合练习(聊天室)
2017/11/07 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
详解如何在Javascript中使用Object.freeze()
2020/10/18 Javascript
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
在Python中使用M2Crypto模块实现AES加密的教程
2015/04/08 Python
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
基于Python在MacOS上安装robotframework-ride
2018/12/28 Python
python获取txt文件词向量过程详解
2019/07/05 Python
python之pymysql模块简单应用示例代码
2019/12/16 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
html5 利用重力感应实现摇一摇换颜色可用来做抽奖等等
2014/05/07 HTML / CSS
英文简历自荐信范文
2013/12/11 职场文书
公司周年庆典邀请函
2014/01/12 职场文书
超级搞笑检讨书
2014/01/15 职场文书
党员个人剖析材料
2014/09/30 职场文书
2014年计生协会工作总结
2014/11/21 职场文书
财政局长个人总结
2015/03/04 职场文书
2015年党务公开工作总结
2015/05/19 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
催款函范文
2015/06/24 职场文书
红白喜事主持词
2015/07/06 职场文书
Vue实现下拉加载更多
2021/05/09 Vue.js
代码解析React中setState同步和异步问题
2021/06/03 Javascript