JQuery+DIV自訂捲軸樣式的具體實現

來源:互聯網
上載者:User

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;} 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.