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 getElementsByName()的用法说明
Jul 31 Javascript
按给定几率进行随机抽取的js代码
Dec 28 Javascript
获取服务器传来的数据 用JS去空格的正则表达式
Mar 26 Javascript
Javascript中浮点数相乘的一个解决方法
Jun 03 Javascript
jQuery层级选择器用法分析
Feb 10 Javascript
浅谈关于JavaScript API设计的一些建议和准则
Jun 24 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
Sep 15 Javascript
封装属于自己的JS组件
Jan 27 Javascript
微信小程序简单实现form表单获取输入数据功能示例
Nov 30 Javascript
关于vue的npm run dev和npm run build的区别介绍
Jan 14 Javascript
mpvue开发音频类小程序踩坑和建议详解
Mar 12 Javascript
vue项目强制清除页面缓存的例子
Nov 06 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 身份证号验证函数
2009/05/07 PHP
PHP如何抛出异常处理错误
2011/03/02 PHP
php验证码实现代码(3种)
2015/09/07 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
url 编码 js url传参中文乱码解决方案
2010/04/11 Javascript
jquery 3D球状导航的文章分类
2010/07/06 Javascript
javascript对talbe进行动态添加、删除、验证实现代码
2012/03/29 Javascript
用js设置下拉框为只读的小技巧
2014/04/10 Javascript
JS获取时间的方法
2015/01/21 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
非常酷炫的Bootstrap图片轮播动画
2016/05/27 Javascript
javaScript事件机制兼容【详细整理】
2016/07/23 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
jQuery实现的隔行变色功能【案例】
2019/02/18 jQuery
vue-cli设置css不生效的解决方法
2020/02/07 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
vue:el-input输入时限制输入的类型操作
2020/08/05 Javascript
在Django中创建动态视图的教程
2015/07/15 Python
Python处理XML格式数据的方法详解
2017/03/21 Python
python实现贪吃蛇游戏源码
2020/03/21 Python
python实现批量修改文件名
2020/03/23 Python
容易被忽略的Python内置类型
2020/09/03 Python
python爬虫---requests库的用法详解
2020/09/28 Python
Python实现AES加密,解密的两种方法
2020/10/03 Python
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
寒假实习自荐信
2014/01/26 职场文书
大学毕业感言一句话
2014/02/06 职场文书
政治学求职信
2014/06/03 职场文书
测控技术自荐信
2014/06/05 职场文书
委托代理人授权委托书范本
2014/09/24 职场文书
夫妻忠诚协议范文
2014/11/16 职场文书
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript