JavaScript中元素client、offset、scroll相关属性的应用

37 篇文章 8 订阅
30 篇文章 0 订阅

注:本联系主要讲解的属性为:clientHeight、clientWidth、offsetParent、offsetWidth、offsetHeight、offsetLeft、offsetRight、scrollWidth、scrollHeight、scrollTop、scrollLeft

效果图:
在这里插入图片描述
源码及解析:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>其他样式相关属性</title>
        <style>
            #box1{
                float: left;
                width: 100px;
                height: 100px;
                background-color: wheat;
                padding: 20px;
                border: 20px solid tomato;
                margin: 20px;
            }

            #box5{
                margin: 20px;
                height: 300px;
                width: 200px;
                background-color: wheat;
                float: left;
                overflow: auto;
            }            
            #box6{
                height: 400px;
                width: 300px;
                background-color: aqua;
            }
        </style>
        <script>
            window.onload = function(){
                var box2 = document.getElementById("box2");
                var box1 = document.getElementById("box1");
                var btn01 = document.getElementById("btn01");
                btn01.onclick = function(){
                    /* 
                        clientWith
                        clientHeight
                            这两个属性可以获取元素的可见宽度和高度
                            这些属性都是不带px的,返回都是一个数字,可以直接进行运算
                            会获取元素宽度和高度,包括内容区和内边距,不包括边框
                            这些属性都是制度的,不能修改

                        offsetWidth
                        offsetHeight
                            获取元素的整个宽度和高度,包括内容区、内边距和边框
                                不包括外边距

                        offsetParent
                            可以用来获取当前元素的定位父元素
                            会获取到离当前元素最近的开启了定位的祖先元素
                                如果所有的祖先元素都没有开启定位,则返回body

                        offsetLeft
                            当前元素相对于其定位父元素的水平偏移量
                        offsetRight
                            当前元素相对于其父元素的垂直偏移量

                        scrollWidth
                        scrollHeight
                            可以获取元素整个滚动区的宽度和高度

                        scrollLeft
                            可以获取水平滚动条滚动的距离
                        scrollRight
                            可以获取垂直滚动条滚动的距离

                     */
                    console.log(box1.clientWidth);
                    console.log(box1.clientHeight);

                    console.log(box1.offsetHeight);
                    console.log(box1.offsetWidth);
                    
                    console.log(box2.offsetParent.id);
                    
                    console.log(box2.offsetLeft);
                    console.log(box2.offsetHeight);

                    console.log(box5.scrollLeft);
                    console.log(box5.scrollTop);
                    console.log(box5.clientHeight);
                    console.log(box5.clientWidth);

                    //当满足 scrollHeight - scrollTop == clientHeight
                    //说明垂直滚动条滚动到底了
                    console.log(box5.scrollHeight-box5.scrollTop);

                    //当满足 scrollWidth - scrollTop == clientWidth
                    //说明水平滚动条滚动到末尾了
                    console.log(box5.scrollWidth - box5.scrollLeft);
                }
            }
        </script>
    </head>
    <body id="body">
        <button id="btn01">CLICK</button>
        <br>
        <br>
        <div id="box1"></div>
        <div id="box3" style="float: left;
        position: relative; width: 200px; height: 200px; background-color: brown;">
            <div id="box4" style="margin: 50px auto; width:100px; height: 100px; background-color: wheat;">
                <div id="box2" style="width: 50px; height: 50px; position: relative;
                background-color: blue; margin: auto;"></div>
            </div>
        </div>

        <div id="box5">
            <div id="box6"></div>
        </div>
    </body>
</html>

希望本案例对你有所帮助,加油!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScriptoffsetscrollclient都是针对元素位置和大小的属性。 1. offset offset指的是一个元素相对于其定位父元素的位置。offset包含了元素的位置(left和top)和大小(width和height),以像素为单位。offset属性是只读的。 例如,假设有一个元素div,它的位置是相对于其父元素的,那么可以通过以下方式获取它的offset属性: ``` var div = document.getElementById("myDiv"); var offsetLeft = div.offsetLeft; var offsetTop = div.offsetTop; var offsetWidth = div.offsetWidth; var offsetHeight = div.offsetHeight; ``` 2. scroll scroll指的是一个元素的滚动位置。scroll包含了元素在水平和垂直方向上的滚动位置(scrollLeft和scrollTop),以像素为单位。scroll属性是可读写的。 例如,假设有一个元素div,它有滚动条,那么可以通过以下方式获取它的scroll属性: ``` var div = document.getElementById("myDiv"); var scrollLeft = div.scrollLeft; var scrollTop = div.scrollTop; ``` 3. client client指的是一个元素的可见区域大小。client包含了元素在水平和垂直方向上的可见区域大小(clientWidth和clientHeight),以像素为单位。client属性是只读的。 例如,假设有一个元素div,它有一些内容,但是只有一部分是可见的,那么可以通过以下方式获取它的client属性: ``` var div = document.getElementById("myDiv"); var clientWidth = div.clientWidth; var clientHeight = div.clientHeight; ``` 区别: 1. offset包含了元素的位置和大小,而client只包含了元素的可见区域大小。 2. scrollclient都只包含了元素在水平和垂直方向上的属性,而offset包含了元素相对于其定位父元素属性。 3. offsetclient是只读的,而scroll是可读写的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值