利用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中的location用法简单介绍
Mar 07 Javascript
JavaScript CSS修改学习第五章 给“上传”添加样式
Feb 19 Javascript
jQuery动画特效实例教程
Aug 29 Javascript
分享纯手写漂亮的表单验证
Nov 19 Javascript
Bootstrap轮播插件简单使用方法介绍
Jun 21 Javascript
详解Angular4 路由设置相关
Aug 26 Javascript
jquery+css3实现熊猫tv导航代码分享
Feb 12 jQuery
js实现控制文件拖拽并获取拖拽内容功能
Feb 17 Javascript
vuex state及mapState的基础用法详解
Apr 19 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
Sep 27 Javascript
javaScript实现一个队列的方法
Jul 14 Javascript
浅析VUE防抖与节流
Nov 24 Vue.js
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
自动把纯文本转换成Web页面的php代码
2009/08/27 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
2012/01/09 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
使用laravel根据用户类型来显示或隐藏字段
2019/10/17 PHP
Web层改进II-用xmlhttp 无声息提交复杂表单
2007/01/22 Javascript
JS location几个方法小姐
2008/07/09 Javascript
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
2013/09/29 Javascript
由浅入深讲解Javascript继承机制与simple-inheritance源码分析
2015/12/13 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
详解javascript事件绑定使用方法
2016/10/20 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
React路由管理之React Router总结
2018/05/10 Javascript
使用async await 封装 axios的方法
2018/07/09 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题
2020/10/29 Javascript
浅谈Python单向链表的实现
2015/12/24 Python
Python实现批量压缩图片
2018/01/25 Python
PyQt+socket实现远程操作服务器的方法示例
2019/08/22 Python
python如何基于redis实现ip代理池
2020/01/17 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
2020/04/14 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
python程序实现BTC(比特币)挖矿的完整代码
2021/01/20 Python
python中spy++的使用超详细教程
2021/01/29 Python
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
材料物理专业求职信
2014/09/01 职场文书
长城导游词
2015/01/30 职场文书
2015年世界急救日宣传活动方案
2015/05/06 职场文书
财务管理制度范本
2015/08/04 职场文书
MySQL获取所有分类的前N条记录
2021/05/07 MySQL
php7中停止php-fpm服务的方法详解
2021/05/09 PHP
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python
Android超详细讲解组件ScrollView的使用
2022/03/31 Java/Android