2021-04-01API第五天

一、元素偏移量 offset 系列(更改元素樣式style同級(jí))

1.offset的作用

offset 翻譯過來就是偏移量, 我們使用 offset系列相關(guān)屬性可以動(dòng)態(tài)地得到該元素的位置(偏移)、大小等。
(1). 獲得元素距離帶有定位父元素的位置。父級(jí)都沒有定位,則以文檔為標(biāo)準(zhǔn)?。。。。?!
(2). 獲得元素自身的大小(寬度高度)
(3). 注意:返回的數(shù)值都不帶單位

2.offset的常用屬性
  • 五個(gè)都是重點(diǎn):
    image.png

    注意:
    (1)子節(jié)點(diǎn).parentNode返回的是親爹元素
    (2)元素對(duì)象.offsetParent返回的是最近的帶有定位的父元素
3.offset與style的區(qū)別

offset:
(1)offset 可以獲取任意樣式表中的樣式值
(2)offset 系列獲得的數(shù)值是沒有單位的
(3)offsetWidth 包含padding+border+width
(4)offsetWidth 等屬性是只讀屬性,只能獲取不能賦值

style:
(1)style 只能獲取行內(nèi)樣式表中的樣式值(但可以更改任意樣式表的樣式值
(2)style.width 獲得的是帶有單位的字符串
(3)style.width 獲得不包含padding和border 的值
(4)style.width 是可讀寫屬性,可以獲取也可以賦值

總結(jié):
(1)獲取元素大小、位置,用offset更合適
(2)更改元素的值,則需要用style改變

二、元素可視區(qū) client 系列

1.概述

client 翻譯過來就是客戶端,我們使用 client 系列的相關(guān)屬性來獲取元素可視區(qū)的相關(guān)信息。通過 client系列的相關(guān)屬性可以動(dòng)態(tài)的得到該元素的邊框大小、元素大小等。

2.client系列的屬性

注意:client可以獲得元素的邊框?qū)挾?、元素除去邊框后的大小(包括padding和width)


image.png
3.立即執(zhí)行函數(shù)

格式:( function() {} )()  或者 ( function() {} () )
特點(diǎn):
(1)無需調(diào)用,直接執(zhí)行。
(2)可以匿名也可以有名字。
作用:獨(dú)立創(chuàng)建了一個(gè)作用域,里面的變量都是局部變量,不會(huì)有命名沖突。

        // 方法1
        (function(a,b){
            console.log(a + b);
        })(1,2);//第二個(gè)小括號(hào)相當(dāng)于調(diào)用函數(shù)

        // 方法2
        (function(c){
            console.log(c);
        }(5));

三、元素滾動(dòng) scroll 系列

1.概述

scroll 翻譯過來就是滾動(dòng)的,我們使用 scroll 系列的相關(guān)屬性可以動(dòng)態(tài)的得到該元素的大小、滾動(dòng)距離等。

2.scroll的屬性
image.png

注意:
(1)元素.scrollWidth元素.clientWidth一樣,返回的也是元素的寬度,包
  含padding和width,不包含border。
(2)不同的是,當(dāng)元素內(nèi)的文本超出時(shí),元素.scrollWidth返回的元素高度會(huì)跟著變大。

3.頁(yè)面被卷去的頭部

如果瀏覽器的高(或?qū)挘┒炔蛔阋燥@示整個(gè)頁(yè)面時(shí),會(huì)自動(dòng)出現(xiàn)滾動(dòng)條。當(dāng)滾動(dòng)條向下滾動(dòng)時(shí),頁(yè)面上面被隱藏掉的高度,我們就稱為頁(yè)面被卷去的頭部。滾動(dòng)條在滾動(dòng)時(shí)會(huì)觸發(fā) onscroll事件。

注意:
頁(yè)面被卷去的上側(cè)距離:window.pageYOffset(window.pageXOffset)
元素被卷去的頭部長(zhǎng)度:元素對(duì)象.scrollTop(元素對(duì)象.scrollLeft)

4.scroll事件

可以為元素添加scroll事件,當(dāng)元素的滾動(dòng)條滾動(dòng)時(shí)會(huì)觸發(fā)事件。

    <div>
      漢皇重色思傾國(guó) 御宇多年求不得 楊家有女初長(zhǎng)成 養(yǎng)在深閨人未識(shí) 天生麗質(zhì)難自棄
      一朝選在君王側(cè) 回眸一笑百媚生 六宮粉黛無顏色 春寒賜浴華清池 溫泉水華西凝脂
      侍兒扶起嬌無力 始是新承恩澤時(shí)
    </div>
    <script>
      // 1.獲取事件源
      var div = document.querySelector('div');

      // 2.注冊(cè)監(jiān)聽事件  程序處理
      div.addEventListener('scroll', function () {
        console.log(div.scrollTop);
      });
    </script>

四、三大系列對(duì)比

image.png

他們的主要用法:
1.offset 經(jīng)常用于獲得元素位置(到最近的有定位父元素的距離) offsetLeft offsetTop
2.client經(jīng)常用于獲取元素大小(不包含邊框) clientWidth clientHeight
3.scroll 經(jīng)常用于獲取滾動(dòng)距離 scrollTop scrollLeft
4.注意: 頁(yè)面滾動(dòng)的距離通過 window.pageXOffset 獲得

五、mouseenter 和mouseover的區(qū)別

1.相同點(diǎn):當(dāng)鼠標(biāo)移動(dòng)到元素上時(shí)就會(huì)觸發(fā)mouseenter 事件
2.不同點(diǎn):
①mouseover 鼠標(biāo)經(jīng)過自身盒子會(huì)觸發(fā),經(jīng)過子盒子還會(huì)觸發(fā)。
②mouseenter 只有經(jīng)過自身盒子觸發(fā)
3.原因:mouseover會(huì)冒泡 ,mouseenter不會(huì)冒泡
4.搭配:mouseover搭配mouseout都會(huì)冒泡;mouseenter搭配mouseleave都不冒泡。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容