【JS】獲取元素寬高(例如div)

文章目錄

    • 基礎用法

基礎用法

高度類型選擇(寬度同理):

屬性描述
offsetHeight包含邊框+內邊距+內容
clientHeight包含內邊距+內容(不包含邊框)
scrollHeight包含滾動內容的全高(含隱藏部分)

JS可使用getElementById等選擇器替換useRef

const targetDiv = document.getElementById('myDiv');
const offsetHeight = targetDiv.offsetHeight
import React, { useRef, useEffect, useState } from 'react';function HeightComponent() {// 1. 創建 ref 對象const divRef = useRef(null);const [height, setHeight] = useState(0);// 3. 在組件掛載后訪問 DOMuseEffect(() => {if (divRef.current) {// 4. 獲取高度const divHeight = divRef.current.offsetHeight;setHeight(divHeight);console.log('Div 高度:', divHeight);}}, []); // 空依賴數組確保只在掛載時運行// 響應尺寸變化(可選)useEffect(() => {const handleResize = () => {if (divRef.current) {setHeight(divRef.current.offsetHeight);}};window.addEventListener('resize', handleResize);return () => window.removeEventListener('resize', handleResize);}, []);return (<div>{/* 2. 綁定 ref 到目標 div */}<div ref={divRef} style={{ padding: '20px', border: '1px solid red' }}>這是一個需要測量高度的 div<br />內容高度會變化...</div><p>Div 高度: {height}px</p></div>);
}export default HeightComponent;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90104.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90104.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90104.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Kubernetes(k8s)中命令行查看Pod所屬控制器之方法總結

在Kubernetes中&#xff0c;可以通過以下方法查看Pod所屬的控制器&#xff1a;方法1&#xff1a;使用 kubectl describe pod命令kubectl describe pod <pod name>Events:Type Reason Age From Message---- ------ ---- ---- …

Zabbix 企業級高級應用

目錄 一、Zabbix 監控基礎與核心價值 二、網絡自動發現&#xff1a;批量主機自動化管理 &#xff08;一&#xff09;網絡自動發現的核心能力與局限 &#xff08;二&#xff09;網絡自動發現完整流程 &#xff08;三&#xff09;網絡自動發現配置步驟 1. 客戶端&#xff0…

行業分類表sql

1.創建行業表行業信息表(hy_industries)名類型長度小數點Not Null虛擬鍵默認值注釋industries_idintTRUEFALSETRUE行業IDindustry_codevarchar5FALSEFALSEFALSE行業編碼industry_namevarchar100FALSEFALSEFALSE行業名稱parent_idvarchar50FALSEFALSEFALSE父級行業ID(頂級為NULL…

PPIO × Lemon AI:一鍵解鎖全流程自動化開發能力

傳統開發需手動編寫代碼、調試及測試&#xff0c;耗時且依賴技術能力。AI Agent 可以幫助開發者進行高效開發&#xff0c;從需求理解到代碼生成、測試、部署一站式完成。Lemon AI是一款開源的通用智能體&#xff0c;能夠實現從需求計劃到成果交付全流程自動化。它可以在虛擬環境…

基于單片機無線防丟/兒童防丟報警器

傳送門 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目速選一覽表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目功能速覽 概述 本設計實現了一種基于單片機的無線防丟報警系統&#xff0c;主要用于防止貴重物品&#xff08;如…

50天50個小項目 (Vue3 + Tailwindcss V4) ? | NotesApp(便簽筆記組件)

&#x1f4c5; 我們繼續 50 個小項目挑戰&#xff01;—— NotesApp組件 倉庫地址&#xff1a;https://github.com/SunACong/50-vue-projects 項目預覽地址&#xff1a;https://50-vue-projects.vercel.app/。 使用 Vue 3 的 Composition API 搭配 TailwindCSS 和 marked 庫&…

基于JAVA實現基于“obj--html--pdf” 的PDF格式文本生成

背景&#xff1a;因一個特定的項目需要&#xff0c;將java對象內容以特定樣式的PDF格式輸出&#xff0c;查看了很多文檔&#xff0c;有收費的、免費的、基礎集成的。收費的工具就表現突出&#xff0c;免費的工具基本很難滿足需求&#xff0c;故著手采用基礎集成方案。過程中嘗試…

Laravel 靜態方法的合理使用考量【超詳細】

Laravel 靜態方法的合理使用考量 在 Laravel 開發中&#xff0c;靜態方法的使用需要謹慎權衡。本文將從多個維度分析靜態方法的適用場景與注意事項&#xff0c;幫助開發者在保持代碼簡潔性的同時&#xff0c;確保可維護性和可測試性。 一、靜態方法的本質與特性 靜態方法屬于類…

在本地127.0.0.1上跨實例訪問遠程數據庫

1.確保可以和遠程目標庫連接通暢2.確保開啟了sqlserver的TCP/IP3.創建LInked server-------先刪除掉已存在的Remote203 IF EXISTS (SELECT 1 FROM sys.servers WHERE name Remote203) BEGINEXEC sp_dropserver Remote203, droplogins; END GO ------------創建鏈接 EXEC sp_ad…

Freemarker實現下載word可能遇到的問題

73萬字的Java面試題庫【全網最詳細-找工作/實習必備神器】&#xff1a; https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzE5MTY1NzczOA&actiongetalbum&album_id4057608455186808839 Java面試題庫ps&#xff1a;網上面試題多而雜&#xff0c;自己整理了一套面試題&a…

涉及海量數據的查詢SQL建議使用“數據庫函數”封裝并調用

一、問題描述生產環境中&#xff0c;核心業務表數據量隨業務增長迅速膨脹&#xff0c;原統計查詢SQL因執行計劃劣化、索引失效而突然變慢。若按傳統流程修復&#xff0c;需要優化SQL、測試、重新打包、發版&#xff0c;并且SQL優化往往需要多輪迭代、持續打磨&#xff1b;若每次…

OBLoader和OBDumper導數工具介紹

OBLoader和OBDumper導數工具介紹使用指南產品功能使用須知使用示例旁路導入性能調優導入性能優化導出性能優化數據處理控制文件預處理函數條件表達式注意事項使用指南 產品功能 &#x1f418; OBLOADER是什么&#xff1a; Java語言開發的客戶端工具&#xff0c;僅適用于Ocea…

Jenkins+Docker+Git實現自動化CI/CD

你是否還在手動構建、測試、部署過程中頻繁等待&#xff1f;或者擔心“我本地沒問題&#xff0c;部署卻報錯”&#xff1f;在敏捷開發和 DevOps 時代&#xff0c;**持續集成與持續交付&#xff08;CI/CD&#xff09;**變得至關重要。將 Jenkins、Docker、Git 三者結合&#xff…

Apache Ignite 的 SQL 功能和分布式查詢機制

這段內容講的是 Apache Ignite 的 SQL 功能和分布式查詢機制。我們可以從幾個關鍵點來理解&#xff1a;一、Ignite 是一個分布式 SQL 數據庫 ? 特點&#xff1a; 符合 ANSI-99 SQL 標準水平擴展&#xff08;可擴展到多個節點&#xff09;容錯&#xff08;fault-tolerant&#…

C++中的deque容器

deque容器基本概念功能&#xff1a;雙端數組&#xff0c;可以對頭端進行插入和刪除操作deque與vector區別&#xff1a;vector對于頭部的插入刪除掉率低&#xff0c;數據量越大&#xff0c;效率越低deque相對而言&#xff0c;對頭部的插入刪除速度會比vector快vetcor訪問元素時的…

閑庭信步使用圖像驗證平臺加速FPGA的開發:第三十課——車牌識別的FPGA實現(2)實現車牌定位

&#xff08;本系列只需要modelsim即可完成數字圖像的處理&#xff0c;每個工程都搭建了全自動化的仿真環境&#xff0c;只需要雙擊top_tb.bat文件就可以完成整個的仿真&#xff0c;大大降低了初學者的門檻&#xff01;&#xff01;&#xff01;&#xff01;如需要該系列的工程…

前端性能優化:從“龜速“到“閃電“的終極加速指南

一、性能指標:你的網站"體檢報告" ?? 1. 核心Web指標(Google排名因素) 指標 全稱 優秀標準 優化方向 LCP 最大內容繪制 ≤2.5s 關鍵資源預加載 FID 首次輸入延遲 ≤100ms 減少長任務 CLS 累計布局偏移 ≤0.1 預留圖片尺寸 測量方法: // 使用web-vitals庫測量…

Linux 重定向和緩沖區

序言&#xff1a; 前面在Linux 基礎文件IO操作-CSDN博客這篇博客里說了很多函數無論是在語言層還是在系統調用的方面。在調用系統調用open的時候會返回一個整型&#xff0c;在write傳參的時候第一個參數是一個叫fd的東西&#xff0c;這個是什么東西&#xff1f;這篇博客會詳細…

web登錄頁面

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>簡易登錄頁面</title><style>* {mar…

Java中關于線程池的解析

引語在學習了線程與多線程的相關知識后&#xff0c;我們已經能夠實現在程序中使多個任務并行&#xff0c;但是我們在操作時候&#xff0c;往往每執行一個的任務就需要創建一個新的線程。這種方式在需要執行任務很多時不利于我們對線程的管理&#xff0c;且創建過多線程也非常占…