zoukankan      html  css  js  c++  java
  • 自定义滚动条

    <!DOCTYPE html>
    <html>
    <head lang="en">
    <meta charset="UTF-8">
    <title></title>

    <style>
    #box{
    600px;
    height: 400px;
    overflow: hidden;
    margin: 100px auto;
    position: relative;
    border: 2px solid cadetblue;
    }
    .content{
    margin: 20px;
    background-color: #cb986d;
    560px;
    margin-top: 0;

    }
    .content>div{
    padding: 0 30px;
    }
    .scroll{
    position: absolute;
    top: 40px;
    right: 4px;
    16px;
    height: 320px;
    background-color: cornflowerblue;
    }
    .bar{
    position: absolute;
    16px;
    height: 30px;
    border-radius: 20%;
    background-color: red;
    top: 0px;
    }
    img{
    400px;
    }
    </style>
    </head>
    <body>
    <div id="box">
    <div class="content">
    <div class="text">
    Lorem ipsum do Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur fugit hic illum sequi? A at in incidunt laborum perspiciatis, quis quos? Ad delectus dolore enim fugit vitae. Ea laborum, nesciunt?lor sit amet, Lorem ipsum dolor sit amet, consectetur adipisicing elit. Debitis deserunt, dolor expedita hic illo ipsum minus non recusandae, reprehenderit rerum temporibus tenetur voluptatibus. Autem beatae cumque fugiat, officiis praesentium voluptatem. consectet Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet consequatur culpa ea est mollitia nesciunt sed voluptatibus? Adipisci autem est inventore mollitia placeat, porro quibusdam sunt. Amet eligendi in quod!ur adipisicing elit. Consequuntur maiores necessitatibus nulla quaerat rem soluta unde veritatis voluptatem! Accusantium consequatur dolor dolore dolores dolorum modi quaerat quasi repellendus sed vel.
    </div>
    <div class="pic">
    <image src="1.jpg"></image>
    </div>
    <div class="text">
    Lorem ipsum do Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur fugit hic illum sequi? A at in incidunt laborum perspiciatis, quis quos? Ad delectus dolore enim fugit vitae. Ea laborum, nesciunt?lor sit amet, Lorem ipsum dolor sit amet, consectetur adipisicing elit. Debitis deserunt, dolor expedita hic illo ipsum minus non recusandae, reprehenderit rerum temporibus tenetur voluptatibus. Autem beatae cumque fugiat, officiis praesentium voluptatem. consectet Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet consequatur culpa ea est mollitia nesciunt sed voluptatibus? Adipisci autem est inventore mollitia placeat, porro quibusdam sunt. Amet eligendi in quod!ur adipisicing elit. Consequuntur maiores necessitatibus nulla quaerat rem soluta unde veritatis voluptatem! Accusantium consequatur dolor dolore dolores dolorum modi quaerat quasi repellendus sed vel.
    </div>

    </div>
    <div class="scroll">
    <div class="bar"></div>
    </div>
    </div>
    <script src="jquery-1.11.3.js"></script>
    <script>
    var oScroll = document.getElementsByClassName("scroll")[0];
    var oBar = document.getElementsByClassName("bar")[0];
    var oCon = document.getElementsByClassName("content")[0];
    var oBox = document.getElementById("box");

    //计算出小滑块能够滚动的最大值
    var maxT = oScroll.offsetHeight - oBar.offsetHeight;

    $(".bar").on("mousedown",function(ev){
    var ev=ev||window.event;
    var y=ev.clientY-this.offsetTop;
    // var y=ev.clientY;
    console.log(this.offsetTop);

    // console.log(y) ;
    document.onmousemove=function(ev) {
    var t = ev.clientY - y;

    if (t < 0) {
    t = 0;
    } else if (t > maxT) {
    t = maxT;
    }
    oBar.style.top = t + "px";


    //再等比例的改变内容区域块的margin-top值
    var scale = t / maxT;
    //oBox.clientHeight可视区域的高度
    oCon.style.marginTop = -scale * (oCon.offsetHeight - oBox.clientHeight ) + "px";

    }
    //鼠标抬起解绑鼠标事件
    document.onmouseup = function(){
    document.onmousemove = null;
    document.onmouseup = null;
    }
    })


    </script>

    </body>
    </html>

    按照比列求出margin-top需要改变的值就可以了,是负值。(这就是整个关键点了)

    
    
    
  • 相关阅读:
    [背包问题][二进制优化] Jzoj P4224 食物
    [并查集][排序] Jzoj P4223 旅游
    [哈夫曼树][优先队列] Bzoj P4198 荷马史诗
    [hash][差分][虚树] Jzoj P6011 天天爱跑步
    [dp] Jzoj P6012 荷马史诗
    [dp][递归] Jzoj P4211 送你一棵圣诞树
    [数学] Jzoj P3912 超氧化钾
    堆学习笔记(未完待续)(洛谷p1090合并果子)
    [AC自动机]luogu P2444 病毒
    [概率期望][DP]luogu P3830 随机树
  • 原文地址:https://www.cnblogs.com/liucong7708/p/6108334.html
Copyright © 2011-2022 走看看