DOM盒子模型常用屬性client,offset和scroll

来源:https://www.cnblogs.com/jiajialove/archive/2019/09/20/11558325.html
-Advertisement-
Play Games

JS盒子模型屬性 在JS中通過相關的屬性可以獲取(設置)元素的樣式信息,這些屬性就是盒子模型屬性(基本上都是有關於樣式的) |屬性|值| |: |: | |client |top/left/width/height| |offset |top/left/width/height/parent| |s ...


JS盒子模型屬性

  • 在JS中通過相關的屬性可以獲取(設置)元素的樣式信息,這些屬性就是盒子模型屬性(基本上都是有關於樣式的)
屬性
client top/left/width/height
offset top/left/width/height/parent
scroll top/left/width/height

    <div id="outer">
    <div id="inner">
        <div id="center"></div>
    </div>
    </div>

clientTop/Left/Width/Height

  • 1.clientWidth & clientHeight:獲取當前元素可視區域的寬高(內容的寬高+左右/上下PADDING, 和內容是否有溢出無關(和是否設置了OVERFLOW:HIDDEN也無關),就是我們自己設定的內容的寬高+PADDING

獲取當前頁面一屏幕(可視區域)的寬度和高度

document.documentElement.clientWidth || document.body.clientWidth
document.documentElement.clientHeight || document.body.clientHeight
  • 2.clientTop & clientLeft:獲取(上/左)邊框的寬度

  • 3.offsetWidth & offsetHeight:在client的基礎上加上border(和內容是否溢出也沒有關係)

  • 4.offsetTop / offsetLeft:獲取當前盒子距離其父級參照物的偏移量(上偏移/左偏移) 當前盒子的外邊框開始~父級參照物的內邊框

  • 5.offsetParent:當前盒子的父級參照物
    “參照物”:同一個平面中,元素的父級參照物和結構沒有必然聯繫,預設他們的父級參照物都是BODY(當前平面最外層的盒子) BODY的父級參照物是NULL
center.offsetParent  //=>BODY
inner.offsetParent   //=>BODY
outer.offsetParent   //=>BODY
  • 6.scrollWidth & scrollHeight:真實內容的寬高(不一定是自己設定的值,因為可能會存在內容溢出,有內容溢出的情況下,需要把溢出的內容也算上)+ 左/上PADDING,而且是一個約等於的值 (沒有內容溢出和CLIENT一樣), 在不同瀏覽器中,或者是否設置了OVERFLOW:HIDDEN都會對最後的結果產生影響,所以這個值僅僅做參考,屬於約等於的值

獲取當前頁面的真實寬高(包含溢出的部分)

document.documentElement.scrollWidth || document.body.scrollWidth
document.documentElement.scrollHeight || document.body.scrollHeight
  • 7.scrollTop / scrollLeft:滾動條捲去的寬度或者高度

    最小捲去值:0
    最大卷去值:真實頁面的高度 - 一屏幕的高度 document.documentElement.scrollHeight-document.documentElement.clientHeight

    在JS盒子模型13個屬性中,只有scrollTop/scrollLeft是“可讀寫”屬性,其餘都是“只讀”屬性

    操作瀏覽器的盒子模型屬性,我們一般都要寫兩套,用來相容各種模式下的瀏覽器


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這三個不同的數據模型之間既相互獨立,又存在著關聯。從現實世界到概念 模型的轉換是由資料庫設計人員完成的;從概念模型到邏輯模型的轉換可以 由資料庫設計人員完成,也可以用資料庫設計工具協助設計人員完成;從邏 輯模型到物理模型的轉換主要是由資料庫管理系統完成的。 ...
  • 版權聲明:本文為xing_star原創文章,轉載請註明出處! 本文同步自http://javaexception.com/archives/218 kotlin之變數的可空與非空 上面一篇文章,介紹了kotlin的變數與常量,以及修飾為常量或者是變數的評估標準。本篇文章主要想說的是一個變數的可空與非 ...
  • 本文鏈接: "Android MediaPlayer 基礎簡介" 簡單介紹MediaPlayer的基本概念,狀態,常用的方法與監聽器。 什麼是MediaPlayer MediaPlayer類可以用來播放音視頻文件,或者是音頻流。開發者可以用它來播放本地音頻,或者是網路線上音頻。 MediaPlaye ...
  • 本文基於webpack4.X,使用的包管理工具是yarn 概念相關就不搬運了,直接開始 首先項目初始化 在項目中安裝webpack和webpack cli (webpack4.X需要) 緊接著在項目中創建三個文件 ,`dist/index.html webpack.config.js`, webpa ...
  • 一、內邊距屬性 1.定義:邊框和內容之間的距離就是內邊距 2.分開寫 3.連寫: 4.註意點: (1)給標簽設置內邊距之後,標簽占有的寬度和高度會發生變化 (2)內邊距也會有背景顏色 二、外邊距屬性 1.定義:標簽與標簽之間的距離就是外邊距 2.分開寫: 3.一起寫 4.例子 5.註意點:外邊距的那 ...
  • 在熟悉jQuery過程中,練習超鏈接提示顯示,發現書本上有個問題,經過查詢資料,修改如下: 效果如下圖: IE edge中的效果: ...
  • # 今日內容: 1. JavaScript: 1. ECMAScript: 2. BOM: 3. DOM: 1. 事件 ## DOM簡單學習:為了滿足案例要求 * 功能:控制html文檔的內容 * 獲取頁面標簽(元素)對象:Element * document.getElementById("id值 ...
  • css3過渡動畫速率用到的是三階貝塞爾曲線,曲線有四個點,p0,p1,p2,p3 有四個屬性: linear 規定以相同速度開始至結束的過渡效果(等於 cubic-bezier(0,0,1,1))。 ease 規定慢速開始,然後變快,然後慢速結束的過渡效果(cubic-bezier(0.25,0.1 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...