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

最近做项目中有一个模块是用于实时监控的,左边有个菜单栏用于显示所有的设备,那当然是从数据库中动态获取的了,右边是个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的范围,监听事件的添加。具体代码可见我的下载资源;

(0)

相关推荐

  • JQuery+DIV自定义滚动条样式的具体实现

    JQuery计算滚动条长度和位置,代码如下: javascript 复制代码 代码如下: <script type="text/javascript">    var scrMinHeight = 1; //滚动条最小高度    var scrMaxHeight = 0; //滚动条最大高度    var scrDefualtTop = 80; //滚动条默认位置    var scrHeight = 0;    //初始化滚动条    function InitScrol

  • jQuery为某个div加入行样式

    JQuery都是以$符号开头的.当然能够用jQuery取代$符号,他们是恒等的,同一时候也是相等的.()事实上就是一个方法,里面能够传递匿名函数等,选取某个div时,如id为div1则用$('#div1').记得加#号,这里跟我们写css样式时加的#号是相同的道理. 样例例如以下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <tit

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

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

  • Android中自定义标题栏样式的两种方法

    原装的Android标题栏配色比较单调,就是黑色的一坨,现在假设你的软件需要独自添加标题栏,这样不仅美观而且可以将进度条等加进去,如何实现: 方法一.在你的那张Activity中onCreate方法中加上下面代码: requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.main); //软件activity的布局 getWindow().setFeatureInt(Window.FEATURE_CUS

  • Jquery自定义button按钮的几种方法

    1.第一种方法比较简单 复制代码 代码如下: "columns": [ { "data": null,defaultContent: '<input type="button" onclick="" value="呵呵" />', orderable: false }, ], 从代码字面意思就能明白什么意思,但是怎样从里边获取改行的信息我还不知道,所以显得不是太实用,定义默认值还可以. 复制代码

  • jQuery自定义滚动条完整实例

    本文实例讲述了jQuery自定义滚动条实现方法.分享给大家供大家参考,具体如下: 很多时候,由于美观上的考虑,往往需要自定义各种各样的滚动条,因此,本人做了一个demo 运行效果截图如下: 以下是代码部分: <html> <head> <script type="text/javascript" src="jquery-1.9.1.min.js"></script> <script> $(function(

  • jquery自定义表格样式

    本文实例讲述了jquery自定义表格样式实现代码.分享给大家供大家参考.具体如下: 运行效果截图如下: 上面这张图有3种状态,默认状态(灰白相间),鼠标悬浮状态(绿色),鼠标点击状态(黄色),是如何实现的呐? Html代码如下: <table> <thead> <tr> <td>编号</td> <td>姓名</td> <td>年龄</td> <td>操作</td> </

  • CSS自定义滚动条样式案例详解

    CSS3自定义滚动条样式 -webkit-scrollbar 当内容超出容器时,容器会出现滚动条,其自带的滚动条有时无法满足我们审美要求,那么我们可以通过css伪类来实现对滚动条的自定义. 首先我们要了解滚动条.滚动条从外观来看是由两部分组成:1,可以滑动的部分,我们叫它滑块2,滚动条的轨道,即滑块的轨道,一般来说滑块的颜色比轨道的颜色深. 滚动条的css样式主要有三部分组成: ::-webkit-scrollbar   定义了滚动条整体的样式: ::-webkit-scrollbar-thum

  • jQuery自定义添加"$"与解决"$"冲突的方法

    本文实例讲述了jQuery自定义添加"$"与解决"$"冲突的方法.分享给大家供大家参考.具体分析如下: 1.自定义添加$ 虽然jQuery很强大,但无论如何,jQuery都不可能满足所有用户的需求,而且有一些需求十分小众,也不适合放到整个jQuery框架中,正是因为这一点,jQuery提供了用户自定义添加"$"的方法. 代码如下: 复制代码 代码如下: $.fn.disable = function() {  return this.each(f

  • jQuery niceScroll滚动条错位问题的解决方法

    虽然niceScroll插件很好用,毕竟它不依赖css,只是单纯的js就可以设置出好看的滚动条了. 最近在项目中使用到niceScroll,而且在表格里有横滚动条,竖滚动条时很容易错位,就是滚动条会悬浮在半空,并不是在div的底部或右边,打开f12可看到滚动条并不是直接定位在div里面,而是在整个body最后,和要使用定位的div同级,这而导致了这个bug,尤其是在IE下更明显,滚动条四处飞︿( ̄︶ ̄)︿. 在网上找了很多资料好像都没有这个情况,可能他们项目没那么多横向滚动条吧..... 要解决

  • jquery判断滚动条距离顶部的距离方法

    实例如下: // 滑动滚动条 $(window).scroll(function(){ // 滚动条距离顶部的距离 大于 200px时 if($(window).scrollTop() >= 200){ $(".scroll_top").fadeIn(1000); // 开始淡入 } else{ $(".scroll_top").stop(true,true).fadeOut(1000); // 如果小于等于 200 淡出 } }); 以上这篇jquery判断

  • jQuery中each遍历的三种方法实例分析

    本文实例讲述了jQuery中each遍历的三种方法.分享给大家供大家参考,具体如下: 1.选择器+遍历 $('div').each(function (i){ //i就是索引值 //this 表示获取遍历每一个dom对象 }); 2.选择器+遍历 $('div').each(function (index,domEle){ //index就是索引值 //domEle 表示获取遍历每一个dom对象 }); 3.更适用的遍历方法 1)先获取某个集合对象 2)遍历集合对象的每一个元素 var d=$(

随机推荐