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


Posted in Javascript onJune 25, 2013

JQuery计算滚动条长度和位置,代码如下:

javascript

<script type="text/javascript">
    var scrMinHeight = 1; //滚动条最小高度
    var scrMaxHeight = 0; //滚动条最大高度
    var scrDefualtTop = 80; //滚动条默认位置
    var scrHeight = 0;
    //初始化滚动条
    function InitScroll() {
        scrMaxHeight = $("#mainScrollContent").height(); //文本框高度
        scrHeight = document.getElementById("mainScrollContent").scrollHeight; //滚动文本高度
        scrHeight = parseInt((scrMaxHeight / scrHeight) * scrMaxHeight);
        if (scrHeight <= scrMinHeight) { scrHeight = scrMinHeight; }
        if (scrHeight >= scrMaxHeight) { $("#scrollContent").hide(); }
        else {
            $("#scrollContent").show();
            $("#scrollContent .tiao_mid").css("height", (scrHeight - 19) + "px");
        }
    }
    $(document).ready(function () {
        $(".bod").height(($(document).height() - 80) + "px");
        $("#mainScrollContent").height(($(document).height() - 125) + "px");
        scrMaxHeight = ($(document).height() - 125); //滚动条最大高度
        $("#scrollBody").height(($(document).height() - 125) + "px");
        $("#scrollBodyBack").height(($(document).height() - 125) + "px");
        InitScroll();
        $("#mainScrollContent").scroll(function () {
            ChangeScroll();
        });
        var y1 = 0;
        $("#scrollContent").mousedown(function (event) {
            var scrContentTop = $("#scrollContent").css("top");
            y1 = event.clientY - parseInt(scrContentTop.replace("px", ""));
            $("#scrollContent").mousemove(function (event) {
                if ((event.clientY - y1) < scrDefualtTop) {
                    $("#scrollContent").css("top", scrDefualtTop + "px");
                }
                else if ((event.clientY - y1) > (scrDefualtTop + scrMaxHeight - scrHeight)) {
                    $("#scrollContent").css("top", (scrDefualtTop + scrMaxHeight - scrHeight) + "px");
                }
                else {
                    $("#scrollContent").css("top", (event.clientY - y1) + "px");
                }
                ChangeScrollContent();
            });
        }).mouseup(function () {
            $("#scrollContent").unbind("mousemove");
        }).mouseout(function () {
            $("#scrollContent").unbind("mousemove");
        });
    });
    //改变滚动内容位置
    function ChangeScrollContent() {
        var scrTop = $("#scrollContent").css("top");
        var st = parseInt(scrTop.replace("px", ""));
        st = ((st - scrDefualtTop) * document.getElementById("mainScrollContent").scrollHeight) / scrMaxHeight
        $("#mainScrollContent").scrollTop(st); //滚动的高度
    }
    //改变滚动条位置
    function ChangeScroll() {
        var scrTop = $("#mainScrollContent").scrollTop(); //滚动的高度
        scrTop = (scrTop * scrMaxHeight) / document.getElementById("mainScrollContent").scrollHeight + scrDefualtTop;
        $("#scrollContent").css("top", scrTop + "px");
    }
    </script>

滚动区域内容DIV:
html

<div class="jtc_neir" id="Div1" style="height: 100px;">
    营业总收入:11.66亿元(同比增长-1.75%)
    <br />
    <a href="bank.aspx">dddd</a>净利润:0.19亿元(同比增长23.72%)
    <br />
    每股收益:0.04元
    <br />
    净资产收益率:1.58%
    <br />
    毛利率:12.22%(同比增长39.89%)
    <br />
    总资产:30.46亿元(同比增长-7.14%)<br />
    as大苏打撒旦撒
    <br />
    阿斯蒂芬多个地方营业总收入:11.66亿元(同比增长-1.75%)
    <br />
    净利润:0.19亿元(同比增长23.72%)
    <br />
    每股收益:0.04元
    <br />
    净资产收益率:1.58%
    <br />
    毛利率:12.22%(同比增长39.89%)
    <br />
    总资产:30.46亿元(同比增长-7.14%)<br />
    as大苏打撒旦撒
    <br />
    阿斯蒂芬多个地方营业总收入:11.66亿元(同比增长-1.75%)
    <br />
    净利润:0.19亿元(同比增长23.72%)
    <br />
    每股收益:0.04元
    <br />
    净资产收益率:1.58%
    <br />
    毛利率:12.22%(同比增长39.89%)
    <br />
    总资产:30.46亿元(同比增长-7.14%)<br />
    as大苏打撒旦撒
    <br />
    阿斯蒂芬多个地方营业总收入:11.66亿元(同比增长-1.75%)
    <br />
    净利润:0.19亿元(同比增长23.72%)
    <br />
    每股收益:0.04元
    <br />
    净资产收益率:1.58%
    <br />
    毛利率:12.22%(同比增长39.89%)
    <br />
    总资产:30.46亿元(同比增长-7.14%)<br />
    as大苏打撒旦撒
    <br />
    阿斯蒂芬多个地方营业总收入:11.66亿元(同比增长-1.75%)
    <br />
    净利润:0.19亿元(同比增长23.72%)
    <br />
    每股收益:0.04元
    <br />
    净资产收益率:1.58%
    <br />
    毛利率:12.22%(同比增长39.89%)
    <br />
    总资产:30.46亿元(同比增长-7.14%)<br />
    as大苏打撒旦撒
    <br />
    阿斯蒂芬多个地方</div>
<div class="jtc_tiao" style="background-color: rgb(196,206,208); z-index: 2;" id="Div2">
</div>
<div class="jtc_tiao" style="background-color: rgb(222,222,222); z-index: 1; width: 16px;"
    id="Div3">
</div>
<div class="jtc_tiao" id="Div4">
    <div class="tiao_up">
    </div>
    <div class="tiao_mid">
    </div>
    <div class="tiao_bottom">
    </div>
</div>

主要样式:
css

.jtc_neir{margin-left:20px; margin-right:20px; color:#000000; font-size:12px; background:none; line-height:32px; overflow-y:scroll;overflow-x:hidden;  
          scrollbar-3dlight-color:rgb(222,222,222);  
    scrollbar-arrow-color:rgb(222,222,222);  
    scrollbar-base-color:rgb(222,222,222);  
    scrollbar-darkshadow-color:rgb(222,222,222);  
    scrollbar-face-color:rgb(222,222,222);  
    scrollbar-highlight-color:rgb(222,222,222);  
    scrollbar-shadow-color:rgb(222,222,222);}  .jtc_tiao{width:8px; position:absolute; top:80px; right:20px; z-index:10;}  
.tiao_up{width:8px; height:10px; background:url(../images/scrollbar-3.jpg) left top no-repeat; line-height:0px; overflow:hidden;}  
.tiao_mid{width:8px; background:url(../images/scrollbar-3.jpg) -39px center  repeat-y; line-height:0px; overflow:hidden;}  
.tiao_bottom{width:8px; height:10px; background:url(../images/scrollbar-3.jpg) -13px bottom no-repeat;font-size:0; line-height:0px; overflow:hidden;} 
Javascript 相关文章推荐
JavaScript不使用prototype和new实现继承机制
Dec 29 Javascript
jQuery表单美化插件jqTransform使用详解
Apr 12 Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
Dec 02 Javascript
如何学JavaScript?前辈的经验之谈
Dec 28 Javascript
jQuery实现文档树效果
Feb 20 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
Jun 22 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
Mar 17 Javascript
使用electron将vue-cli项目打包成exe的方法
Sep 29 Javascript
微信小程序实现签字功能
Dec 23 Javascript
vue实现五子棋游戏
May 28 Javascript
vue页面跳转实现页面缓存操作
Jul 22 Javascript
js实现带有动画的返回顶部
Aug 09 Javascript
js循环改变div颜色具体方法
Jun 25 #Javascript
js点击更换背景颜色或图片的实例代码
Jun 25 #Javascript
js操作iframe的一些方法介绍
Jun 25 #Javascript
动态获取复选框checkbox选中个数的jquery代码
Jun 25 #Javascript
JQuery在页面中添加和除移DOM示例代码
Jun 24 #Javascript
使用jQuery UI的tooltip函数修饰title属性的气泡悬浮框
Jun 24 #Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
Jun 24 #Javascript
You might like
php学习笔记 面向对象中[接口]与[多态性]的应用
2011/06/16 PHP
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
php 三大特点:封装,继承,多态
2017/02/19 PHP
php 静态属性和静态方法区别详解
2017/04/09 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
JavaScript 继承使用分析
2011/05/12 Javascript
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
2015/08/21 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
简单实现js菜单栏切换效果
2017/03/04 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
vue-router懒加载的3种方式汇总
2021/02/28 Vue.js
python数据结构之二叉树的统计与转换实例
2014/04/29 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
python实现求特征选择的信息增益
2018/12/18 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
2020/06/02 Python
HTML5拖放API实现自动生成相框功能
2020/04/07 HTML / CSS
澳大利亚百货公司:David Jones
2018/02/08 全球购物
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
大学生饮食配送创业计划书
2014/01/04 职场文书
医德医风自我评价
2014/09/19 职场文书
预备党员2014年第四季度思想汇报范文
2014/10/25 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书
如何将JavaScript将数组转为树形结构
2021/06/02 Javascript