zoukankan      html  css  js  c++  java
  • js:client、scroll(client与scroll)

    一、client

    1、概念

    client翻译过来就是客户端,我们使用client系列的相关属性来获取可视区的相关信息,通过client系列的相关属性,可以动态的得到该元素的边框大小,元素大小等

    2、client不包含边框,但是包含padding

    (1)不定义边框

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style>
                div{
                     300px;
                    height: 200px;
                    background-color: darkred;
                }
            </style>
          <script>
                 
          </script>
        </head>
        <body>
             <div></div>
             <script>
                 var div=document.querySelector("div");
                 console.log(div.clientWidth);
             </script>
        </body>
    </html>

     (2)定义边框

    <style>
                div{
                     300px;
                    height: 200px;
                    background-color: darkred;
                    border: 10px solid red;
                }
            </style>

    与offset不同,client的宽度不包括边框,但是包含padding

    (3)返回边框的上/左边框大小

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style>
                div{
                     300px;
                    height: 200px;
                    background-color: darkred;
                    border: 20px solid red;
                }
            </style>
          <script>
                 
          </script>
        </head>
        <body>
             <div></div>
             <script>
                 var div=document.querySelector("div");
                 console.log(div.clientTop);
                 console.log(div.clientLeft)
             </script>
        </body>
    </html>

    二、scroll

    1、不包含边框,但是包含padding

    (1)不包含边框

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style>
                div{
                     300px;
                    height: 200px;
                    background-color: darkred;
                    border: 20px solid red;
                }
            </style>
        </head>
        <body>
             <div></div>
             <script>
                 var div=document.querySelector("div");
                 console.log(div.scrollHeight);
             </script>
        </body>
    </html>

     (2)返回的是内容的宽度或高度

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style>
                div{
                     30px;
                    height: 20px;
                    background-color: darkred;
                    border: 2px solid red;
                }
            </style>
        </head>
        <body>
             <div>床前明月光床前明月光床前明月光</div>
             <script>
                 var div=document.querySelector("div");
                 console.log(div.scrollHeight);
                 console.log(div.scrollWidth);
             </script>
        </body>
    </html>

    (3)添加滚动条

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style>
                div{
                     60px;
                    height: 30px;
                    background-color: darkred;
                    border: 2px solid red;
                    overflow: auto;
                }
            </style>
        </head>
        <body>
             <div>床前明月光床前明月光床前明月光</div>
             <script>
                 var div=document.querySelector("div");
                 console.log(div.scrollHeight);
                 console.log(div.scrollWidth);
             </script>
        </body>
    </html>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style>
                div{
                     60px;
                    height: 30px;
                    background-color: darkred;
                    border: 2px solid red;
                    overflow: auto;
                }
            </style>
        </head>
        <body>
             <div>床前明月光床前明月光床前明月光</div>
             <script>
                 var div=document.querySelector("div");
                 console.log(div.scrollHeight);
                 console.log(div.scrollWidth);
             </script>
        </body>
    </html>

     (4)为滚动条添加事件,计算top

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style>
                div{
                     60px;
                    height: 30px;
                    background-color: darkred;
                    border: 2px solid red;
                    overflow: auto;
                }
            </style>
        </head>
        <body>
             <div>床前明月光床前明月光床前明月光</div>
             <script>
                 var div=document.querySelector("div");
                 console.log(div.scrollHeight);
                 console.log(div.scrollWidth);
                 div.addEventListener("scroll",function(){
                     console.log(div.scrollTop);
                 })
             </script>
        </body>
    </html>

     2、offset、client与scroll的对比

    offset:返回自身包含padding、边框、内容区的宽度,返回值无单位,常用于获取元素的位置

    client:返回自身包含padding、内容区的宽度、不含边框,返回值无单位,常用于获取元素的大小

    scroll:返回自身实际的宽度,不含边框,返回值无单位,常用于获取滚动距离

  • 相关阅读:
    rmq +二分暴力 hdu 5726
    8.25 ccpc 比赛总结
    莫比乌斯反演题目总结
    HDU 4848 Wow! Such Conquering! (搜索+floyd)
    Codeforces 982 C Cut 'em all!(DFS)
    Codefoces 986C AND Graph(DFS)
    CodeForces 986A Fair(BFS)
    ACM经验贴
    Kattis A+B Problem(FFT)
    CF E. Porcelain (双向dp)
  • 原文地址:https://www.cnblogs.com/zhai1997/p/13424299.html
Copyright © 2011-2022 走看看