最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等屬性學(xué)習(xí)筆記

 更新時間:2020年07月15日 14:47:18   作者:wenr  
這篇文章主要介紹了JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等屬性學(xué)習(xí)筆記,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

全文參考:https://github.com/iuap-design/blog/issues/38 、MDN

clientHeight,只讀

clientHeight可以用公式 CSS height + CSS padding - 水平滾動條的高度 (如果存在) 來計算。

如圖,這樣一個div,它的clientHeight為95,計算:50(height)+30(padding-top)+30(padding-bottom)-15(經(jīng)測量滾動條高度就是15)=95

clientTop,只讀

一個元素頂部邊框的寬度(以像素表示)。嗯。。就只是border-top-width

類似的屬性還有一個clientLeft,顧名思義……

offsetHeight,只讀

元素的offsetHeight是一種元素CSS高度的衡量標(biāo)準(zhǔn),包括元素的邊框、內(nèi)邊距和元素的水平滾動條(如果存在且渲染的話),是一個整數(shù)。

還是上面的圖,div的offsetHeight為112。計算:50+60(上下內(nèi)邊距)+2(上下邊框)=112

offsetTop,只讀

HTMLElement.offsetParent是一個只讀屬性,返回一個指向最近的包含該元素的定位元素。如果沒有定位的元素,則offsetParent為最近的table,table cell或根元素(標(biāo)準(zhǔn)模式下為html;quirks 模式下為body)。當(dāng)元素的style.display設(shè)置為 "none" 時,offsetParent返回null。

它返回當(dāng)前元素相對于其offsetParent元素的頂部的距離。

還是上面那張圖,div的offsetTop為20,因?yàn)閙argin-top是20,距離html頂部的距離是20...

scrollHeight,只讀

實(shí)話,這么久了,竟然一直搞錯這個scroll相關(guān)屬性,其實(shí)它描述的是outer的屬性,而窩一直取inner的屬性值,難怪scrollTop一直是0。。。

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <style>
  #outer {
   margin: 100px 50px;
   background: url(http://images.cnblogs.com/cnblogs_com/wenruo/873448/o_esdese.jpg);
   height: 100px;
   width: 50px;
   padding: 10px 50px;
   overflow: scroll;
  } 
  #inner {
   height: 200px;
   width: 50px;
   background-color: #d0ffe3;
  }
 </style>
</head>
<body>
 <div id="outer">
  <div id="inner"></div>
 </div>
</body>
</html>

因?yàn)橄拗屏烁冈氐母叨?,所以不能全部顯示子元素,設(shè)置了overflow之后,可以通過滾動條的形式滑動查看子元素。效果如圖1,如果沒有限制父元素的高度,那么效果將如圖2顯示。

(圖1) (圖2)

scrollHeight就是圖2的高度,沒有高度限制時,能夠完全顯示子元素時的高度(clientHeight)。

所以這里scrollHeight為220,計算:200+10+10=220

scrollTop,可寫

是這些元素中唯一一個可寫可讀的。

下面的圖是用微信截圖隨便畫的:D(不小心混入了一個光標(biāo)。。

所以當(dāng)滾動條在最頂端的時候,scrollTop=0,當(dāng)滾動條在最低端的時候,scrollTop=115

這個115怎么來的(滾動條高度是15,我量的),見下圖。(實(shí)為我主觀臆測,不保證準(zhǔn)確性。。。_(:з」∠)_

scrollTop是一個整數(shù)。

如果一個元素不能被滾動,它的scrollTop將被設(shè)置為0。

設(shè)置scrollTop的值小于0,scrollTop被設(shè)為0。

如果設(shè)置了超出這個容器可滾動的值,scrollTop會被設(shè)為最大值。

判定元素是否滾動到底:

element.scrollHeight - element.scrollTop === element.clientHeight

返回頂部

element.scrollTop = 0

一個簡單的返回頂部的時間,一個需要注意的地方是,動畫是由快到慢的。

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>返回頂部</title>
 <style>
  #outer { height: 100px; width: 100px; padding: 10px 50px; border: 1px solid; overflow: auto; }
 </style>
</head>
<body>
 <div id="outer">
  <div id="inner"></div>
 </div>
 <button onclick="toTop(outer)">返回頂部</button>
 <script>
  function toTop(ele) {
   // ele.scrollTop = 0;
   let dy = ele.scrollTop / 4; // 每次更新scrollTop改變的大小
   if (ele.scrollTop > 0) {
    ele.scrollTop -= Math.max(dy, 10);
    setTimeout(() => {
     toTop(ele, dy);
    }, 30);
   }
  }
  // 初始化
  window.onload = () => {
   for (let i = 0; i < 233; i++) inner.innerText += `第${i}行\(zhòng)n`;
  }
 </script>
</body>
</html>

到此這篇關(guān)于JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等屬性學(xué)習(xí)筆記的文章就介紹到這了,更多相關(guān)JavaScript scrollTop scrollHeight offsetTop offsetHeight內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js enter鍵激發(fā)事件實(shí)例代碼

    js enter鍵激發(fā)事件實(shí)例代碼

    下面小編就為大家?guī)硪黄猨s enter鍵激發(fā)事件實(shí)例代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • uniapp項(xiàng)目打包為桌面應(yīng)用的方法步驟

    uniapp項(xiàng)目打包為桌面應(yīng)用的方法步驟

    本文主要介紹了uniapp項(xiàng)目打包為桌面應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • 微信小程序 JS動態(tài)修改樣式的實(shí)現(xiàn)代碼

    微信小程序 JS動態(tài)修改樣式的實(shí)現(xiàn)代碼

    這篇文章主要介紹了微信小程序 JS動態(tài)修改樣式的實(shí)現(xiàn)代碼,原理是綁定數(shù)據(jù),然后動態(tài)的修改數(shù)據(jù),從而實(shí)現(xiàn)動態(tài)樣式的改變而已,需要的朋友可以參考下
    2017-02-02
  • JavaScript利用正則表達(dá)式替換字符串中的內(nèi)容

    JavaScript利用正則表達(dá)式替換字符串中的內(nèi)容

    本文主要介紹了JavaScript利用正則表達(dá)式替換字符串中內(nèi)容的具體實(shí)現(xiàn)方法,并做了簡要注釋,便于理解。具有一定的參考價值,需要的朋友可以看下
    2016-12-12
  • js面試題之異步問題的深入理解

    js面試題之異步問題的深入理解

    這篇文章主要給大家介紹了關(guān)于js面試題之異步問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • jQuery正則表達(dá)式驗(yàn)證表單代碼演示

    jQuery正則表達(dá)式驗(yàn)證表單代碼演示

    這篇文章主要給大家介紹了關(guān)于jQuery正則表達(dá)式驗(yàn)證表單的相關(guān)資料,我們在寫表單的時候會通過一些正則表達(dá)式來驗(yàn)證是否正確,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • js重寫alert控件(適合學(xué)習(xí)js的新手朋友)

    js重寫alert控件(適合學(xué)習(xí)js的新手朋友)

    這篇文章主要介紹js重寫alert控件的過程比較適合學(xué)習(xí)js的新手朋友,需要的朋友可以參考下
    2014-08-08
  • 動態(tài)加載js、css的實(shí)例代碼

    動態(tài)加載js、css的實(shí)例代碼

    這篇文章主要介紹了動態(tài)加載js、css的實(shí)例代碼的相關(guān)資料,非常不錯具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-05-05
  • Javascript連接Access數(shù)據(jù)庫完整實(shí)例

    Javascript連接Access數(shù)據(jù)庫完整實(shí)例

    這篇文章主要介紹了Javascript連接Access數(shù)據(jù)庫的方法,涉及javascript針對access數(shù)據(jù)庫的連接、關(guān)閉及增刪改查等常用操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • js刪除對象中的某一個字段的方法實(shí)現(xiàn)

    js刪除對象中的某一個字段的方法實(shí)現(xiàn)

    這篇文章主要介紹了js刪除對象中的某一個字段的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評論

泗洪县| 石嘴山市| 宣化县| 墨脱县| 郧西县| 来宾市| 昌吉市| 三原县| 奉贤区| 耒阳市| 中山市| 五莲县| 铜鼓县| 东安县| 桂东县| 广昌县| 屏边| 年辖:市辖区| 康定县| 兴宁市| 营口市| 旬阳县| 辰溪县| 明水县| 琼结县| 合阳县| 漠河县| 自贡市| 项城市| 通州区| 南宁市| 新绛县| 十堰市| 吴堡县| 乡宁县| 远安县| 朔州市| 宝清县| 灵武市| 大连市| 北碚区|