• 自定义滚动条


    <!DOCTYPE html>
    <html lang="">
     
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            * {    margin: 0;padding: 0;}
            html,body {    100%;height: 100%;}
            #box { 100%; height: 100%; overflow: hidden; }
            .ball { 100%; height: 500px; }
            #scroll {
                6px; height: 96%;
                position: fixed; top: 2%; right: 5px;
                border-radius: 3px; background-color: rgba(235, 233, 233, 0.5);
                z-index: 9998; opacity: 0;
            }
            #scrollBar {
                position: absolute; z-index: 9999;
                6px; height: 20px;
                border-radius: 3px;
                left: 0; top: 0; background-color: #383838;
            }
        </style>
    </head>
     
    <body style="overflow:hidden;">
        <div id="box">
            <div id="content">
                <p class="ball" style="background-color:red;"></p>
                <p class="ball" style="background-color:blue;"></p>
                <p class="ball" style="background-color:yellow;"></p>
                <p class="ball" style="background-color:red;"></p>
                <p class="ball" style="background-color:blue;"></p>
                <p class="ball" style="background-color:yellow;"></p>
            </div>
        </div>
        <div id="scroll">
            <div id="scrollBar"></div>
        </div>
    </body>
     
    </html>
    <script type="text/javascript">
        var content = document.getElementById("content");
        var box = document.getElementById("box");
        var scroll = document.getElementById("scroll");
        var scrollBar = document.getElementById("scrollBar");
        var Step = {
            value : 0,
            size : 20,
            maxVal : Math.ceil((content.offsetHeight-document.body.offsetHeight)/20),
            getCurrentVal:function(){
                return this.value;
            },
            next:function(){
                if(this.value==this.maxVal) return;
                this.value++;
            },
            pre:function(){
                if(this.value==0) return;
                this.value--;
            },
            getDistance:function(){
                return this.getCurrentVal()*this.size;
            },
            update:function(){
                this.maxVal = Math.ceil((content.offsetHeight-document.body.offsetHeight)/this.size);
            }
        }
     
        window.addEventListener("resize",function(){
            Step.update();
        });
     
        box.addEventListener("DOMMouseScroll",scrollfunc);
        box.addEventListener("mousewheel", scrollfunc);
        function scrollfunc(e){
            if(e.type=="mousewheel"){ //非FF
                e.wheelDelta<0?Step.next():Step.pre();
            } else { //FF
                e.detail>0?Step.next():Step.pre();
            }
            document.title = Step.getCurrentVal();
            box.scrollTop = Math.min(Step.getDistance(),content.offsetHeight-document.body.offsetHeight);
            //计算滚动比例
            var percent = box.scrollTop/(content.offsetHeight-document.body.offsetHeight);
            //显示滚动条
            scroll.style.opacity = 100;
            //计算滚动条的位置
            scrollBar.style.top = (scroll.offsetHeight-scrollBar.offsetHeight)*percent + "px";
     
        }
    </script>
  • 相关阅读:
    implementaion bottle session with beaker
    [梦]20050802
    网站更新部署20100912
    Cherokee不值得推荐,你还是可以看一看
    最简单方法远程调试Python多进程子程序
    nginx相关的问题
    本地配置host解析的问题
    base target问题,
    在asp.net中自动合并小图片并使用css sprite显示出来
    html编辑器
  • 原文地址:https://www.cnblogs.com/tis100204/p/10310085.html
Copyright © 2020-2023  润新知