JavaScript三大系列

本文详细介绍了DOM元素的offset系列属性,包括如何获取元素相对于定位父元素的位置和大小。同时,对比了offset与style的区别,以及讲解了client和scroll系列属性在获取元素可视区和滚动信息时的应用。通过实例代码展示了这些属性的实际使用,帮助开发者更好地理解和操作DOM元素。
摘要由CSDN通过智能技术生成

元素偏移量offset系列

offset概述

offset翻译过来就是偏移量,我们使用offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等。

  • 获得元素距离带有定位父元素的位置

  • 获得元素自身的大小(宽度高度)

  • 注意:返回的数值都不带单位

offset系列常用属性:

element.offsetParent 返回作为该元素带有定位的父级元素 如果父级都没有定位则返回body

element.offsetTop 返回元素相对带有定位父元素上方的偏移

element.offsetLeft 返回元素相对带有定位父元素左边框的偏移

element.offsetWidth 返回自身包括padding、边框、内容区的宽度、返回数值不带单位

element.offsetHeight 返回自身包括padding、边框、内容区的高度、返回数字不带单位

offsetParent和parentNode的区别

console.log(son.offsetParent);

返回带有定位的父亲 否则返回的是body

console.log(son.parentNode);

返回父亲 是最近一级的父亲 亲爸爸 不管父亲有没有定位

    <div class="father">
        <div class="son"></div>
    </div>
    <div class="w"></div>
    <script>
        // offset 系列
        var father = document.querySelector('.father');
        var son = document.querySelector('.son');
        // 1.可以得到元素的偏移 位置 返回的不带单位的数值  
        console.log(father.offsetTop);
        console.log(father.offsetLeft);
        // 它以带有定位的父亲为准  如果么有父亲或者父亲没有定位 则以 body 为准
        console.log(son.offsetLeft);
        var w = document.querySelector('.w');
        // 2.可以得到元素的大小 宽度和高度 是包含padding + border + width 
        console.log(w.offsetWidth);
        console.log(w.offsetHeight);
        // 3. 返回带有定位的父亲 否则返回的是body
        console.log(son.offsetParent); // 返回带有定位的父亲 否则返回的是body
        console.log(son.parentNode); // 返回父亲 是最近一级的父亲 亲爸爸 不管父亲有没有定位
offset与style的区别
offset
  • offset可以得到任意样式表中的样式值
  • offset系列获得的数值是没有单位的
  • offsetWidth包含padding+border+width
  • offsetWidth等属性是只读属性,只能获取不能赋值
  • 所以,我们想要获取元素大小位置,用offset更合适
style
  • style只能得到行内样式表中的样式值
  • style.width获得的是带有单位的字符串
  • style.width获得不包含padding和border的值
  • style.width是可读写属性,可以获取也可以赋值
  • 所以,我们想要给元素更改值,则需要用style改变

元素可视区client系列

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

element.clientTop       返回元素上边框的大小

element.clientLeft       返回元素左边框的大小

element.clientWidth   返回自身包括padding、内容区的宽度,包含边框,返回数值不带单位

element.clientHeight  返回自身包括padding、内容区的高度,包含边框,返回数值不带单位

        // client系列
        // client 宽度 和我们offsetWidth 最大的区别就是 不包含边框
        var div = document.querySelector('.box1');
        console.log(div.clientWidth);

元素scroll系列

scroll翻译过来就是滚动的,我们使用scroll系列的相关属性可以动态的得到该元素的大小、滚动距离等。

element.scrollTop               返回被卷去的上侧距离,返回数值不带单位

element.scrollLeft               返回被卷去的左侧距离,返回数值不带单位

element.scrollWidth           返回自身实际的宽度,不含边框,返回数值不带单位

element.scrollHeight          返回自身实际的高度,不含边框,返回数值不带单位

 

 

如果浏览器的高(或宽)度不足以显示整个页面时,会自动出现滚动条。当滚动条向下滚动时,页面上面被隐藏掉的高度,我们就称为页面被卷去的头部。滚动条在滚动时会触发onscroll事件,页面被卷去的头部:可以通过window.pageYOffset获得,如果被卷去的左侧window.pageXOffset

三大系列总结

element.offsetWidth            返回自身包括padding,边框,内容区宽度,返回数值不带单位

element.clientWidth             返回自身包括padding,内容区宽度,不含边框,返回数值不带单位

element.scrollWidth             返回自身实际的宽度,不含边框,返回数值不带单位

1.offset系列常用于获得元素位置

2.client经常用于获取元素大小

3.scroll经常用于获取滚轮距离

        // scroll 系列
        var div = document.querySelector('.box2');
        console.log(div.scrollHeight);
        console.log(div.clientHeight);
        // scroll滚动事件当我们滚动条发生变化会触发的事件
        div.addEventListener('scroll', function () {
            console.log(div.scrollTop);
        })

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值