利用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 模拟类搜索框自动完成搜索提示功能(改进)
May 24 Javascript
JS 面向对象之神奇的prototype
Feb 26 Javascript
js取消单选按钮选中并判断对象是否为空
Nov 14 Javascript
简易的投票系统以及js刷票思路和方法
Apr 07 Javascript
JS模拟Dialog弹出浮动框效果代码
Oct 16 Javascript
jQuery继承extend用法详解
Oct 10 Javascript
JQuery 获取多个select标签option的text内容(实例)
Sep 07 jQuery
React Router v4 入坑指南(小结)
Apr 08 Javascript
vue-cli扩展多模块打包的示例代码
Apr 09 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
Apr 21 Javascript
vue滚动tab跟随切换效果
Jun 29 Javascript
JavaScript canvas基于数组生成柱状图代码实例
Mar 06 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
Terran兵种对照表
2020/03/14 星际争霸
打造计数器DIY三步曲(中)
2006/10/09 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
2013/11/13 PHP
php页面防重复提交方法总结
2013/11/25 PHP
php去除数组中重复数据
2014/11/18 PHP
php上传图片生成缩略图(GD库)
2016/01/06 PHP
无缝滚动改进版支持上下左右滚动(封装成函数)
2012/12/04 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
浅谈javascript的调试
2015/01/28 Javascript
JS代码防止SQL注入的方法(超简单)
2016/04/12 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
vue双向绑定的简单实现
2016/12/22 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
微信小程序实现图片上传放大预览删除代码
2020/06/28 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
详解在React-Native中持久化redux数据
2019/05/22 Javascript
详谈Object.defineProperty 及实现数据双向绑定
2020/07/18 Javascript
python翻译软件实现代码(使用google api完成)
2013/11/26 Python
在Python中使用Neo4j数据库的教程
2015/04/16 Python
Python 列表理解及使用方法
2017/10/27 Python
在Pycharm中执行scrapy命令的方法
2019/01/16 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
Python算法的时间复杂度和空间复杂度(实例解析)
2019/11/19 Python
Python序列化pickle模块使用详解
2020/03/05 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
CSS实现雨滴动画效果的实例代码
2019/10/08 HTML / CSS
新加坡第一的杂货零售商:NTUC FairPrice
2020/12/05 全球购物
2014年机关植树节活动方案
2014/02/27 职场文书
教师求职信怎么写
2015/03/20 职场文书
大学生入党群众意见书
2015/06/02 职场文书
公务员岗前培训心得体会
2016/01/08 职场文书
2019秋季运动会口号
2019/06/25 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书
python实现高效的遗传算法
2021/04/07 Python
浅谈mysql返回Boolean类型的几种情况
2021/06/04 MySQL