HTML 要素の高さ、offsetHeight、clientHeight、scrollTop などの詳細な説明。

HTML 要素の高さ、offsetHeight、clientHeight、scrollTop などの詳細な説明。

要素に関するいくつかの属性

フロントエンドの日常的な開発では、一部のページのプロパティを取得または監視する必要が頻繁に発生するため、これらのプロパティをより適切に使用するには、一部のプロパティの意味を理解する必要があります。特に、次のとおりです。

  • サイズ関連: offsetHeight、clientHeight、scrollHeight;
  • オフセット関連: offsetTop、clientTop、scrollTop、pageYOffset、scrollY;
  • 相対的なビューポートの位置を取得します: Element.getBoundingClientRect();
  • 要素のスタイル オブジェクトを取得します: Window.getComputedStyle(Element);

属性の定義

サイズ関連の属性定義について:

offsetHeight: Element.offsetHeight は、要素の高さの px 値を返す読み取り専用プロパティです。これは整数値であり、小数点はありません。

  • 非表示の要素は 0 を返します。
  • その他は、要素の innerHeight + padding + border + margin + scrollbar を返しますが、内部の ::before または ::after 疑似要素は含まれません。

clientHeight: Element.clientHeight は、要素の高さの px 値を返す読み取り専用プロパティです。これは整数値であり、小数点はありません。

  • スタイルが設定されていないインライン要素の場合、返される値は 0 になります。
  • html 要素または Quirks モードの body の場合、返される値はビューポートの高さ、つまりページ ビューポート全体の高さになります。
  • その他の場合: 境界線、余白、スクロールバーを除いた要素の innerHeight + パディング。

scrollHeight: は読み取り専用プロパティです。要素の高さの px 値を返します。小数点なしの整数値です。

  • 子要素がスクロールしない場合は、Element.clientHeightと同じになります。
  • 子要素がスクロール可能な場合は、すべての子要素の clientHeight の高さの合計 + それぞれのパディングになります。

window.innerHeight: (ブラウザウィンドウの高さ、ツールバー、メニューなどを除いた、表示領域DOMの高さのみ)
window.outerHeight: (ブラウザウィンドウの高さ、ツールバー、メニューなどを含む、ブラウザ全体の高さ)

オフセットについて:

offsetTop: 最も近い相対的に配置された親要素の内側の端からの要素の上の距離を返す読み取り専用プロパティ。実際の使用では、異なるスタイルによって相対的に配置された親要素が一貫していないために互換性の問題が発生する可能性があります。
clientTop: 上側の境界線の幅
スクロールトップ:

  • スクロール要素の場合、これはスクロールされた距離です。
  • HTMLの場合はwindow.scrollYです。

window.scrollY、別名: window.pageYOffset、ルートノードが垂直方向にスクロールした距離

開発に必要な関連データ

ページ全体の表示領域の高さを取得します。[表示領域外の高さは不要]

定数高さ = window.innerHeight
    || ドキュメント.documentElement.クライアント高さ
    || ドキュメント本体のクライアントの高さ;

ページ全体の高さを取得します: [表示領域の外側も含む]

定数高さ = document.documentElement.offsetHeight
    || ドキュメント本体のオフセット高さ;

ページ全体の垂直スクロールの高さを取得します。

定数 scrollTop = document.documentElement.scrollTop
    || ドキュメント本体の先頭をスクロールします。

ルート ノードの上部を基準とした要素の距離を取得します。

// ルートノードに対して相対的に配置された要素の場合、const top = Element.offsetTop;

// ルートノードに対して相対的に配置されていない要素の場合は、getElementTop(element) にループする必要があります。
      実際のトップを要素.オフセットトップとします
      現在の要素を要素.offsetParentとする

      while (current !== null) {
        実際のトップ += 現在のオフセットのトップ
        現在の = 現在のオフセット親
      }
      実際のトップを返す
}

// 別の方法は、スクロール距離 + ビューポートの上余白からの距離です。const top = Element.getBoundingClientRect().top + window.scrollY;

表示領域に対する要素の上部の距離を取得します。

定数 top = Element.getBoundingClientRect().top;

ページ全体の垂直スクロール位置を設定します。

const isCSS1Compat = ((document.compatMode || "") === "CSS1Compat");
(CSS1Compat) の場合 {
    ドキュメントのスクロールトップ = 100;
} それ以外 {
    ドキュメントのスクロールトップ = 100;
}

HTML 要素の height、offsetHeight、clientHeight、scrollTop などの詳細説明はこれで終わりです。height、offsetHeight、clientHeight、scrollTop に関するより関連性の高い内容については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  インタビューの質問: ホーリー グレイル レイアウトとダブル ウィング レイアウトの違い

>>:  CSS で波の効果を作成するためのアイデア

推薦する

vue.config.js パッケージ最適化構成

Baiduの情報は多様すぎて目が回ります。心配しないでください。私はあなたのためにそれを体験しました...

Win7 での mysql5.5 インストール グラフィック チュートリアル

MySQL のインストールは比較的簡単なので、通常は次のステップに直接進み、注意が必要な点に集中する...

カラフルな時計効果を実現する JavaScript キャンバス

キャンバスを使ってカラフルな時計を書いてみよう! 1. タイトル(1)時計のケースが与えられ、ページ...

主軸上のFlex子要素の比率を制御する方法

背景フレックス レイアウトにより、配置とスペースの割り当てがより効果的に実現されます。最近、flex...

CSS3 の新しいレイアウト: flex の詳細な説明

Flexの基本概念フレックス レイアウト (フレックスはフレキシブル ボックスの略)、エラスティック...

Linux の sudo 脆弱性により不正な特権アクセスが発生する可能性がある

Linux で新たに発見された sudo の脆弱性を悪用すると、特定のユーザーが root としてコ...

Docker プライマリ ネットワーク ポート マッピング構成

ポートマッピングDocker コンテナを起動する前にポート マッピングを行わないと、コンテナ外部のネ...

Vuex ステートマシンの簡単な理解とサンプルアプリケーション

目次1. 概念の素早い理解: 1. コンポーネント間でデータを共有する方法: 2. vuex とは何...

異なるページ間のJavaScriptデータ転送(URLパラメータ取得)

Web ページでは、あるページに情報を入力すると、別のページにジャンプし、入力した情報が別のページ...

iframe ページで js 関数を呼び出すには js を使用します

最近、私は毎日論文提案に取り組んでいます。自分のスキルを発揮して、再びWebをデザインしたくてうずう...

Reactでファイルパスエイリアスを素早く設定する方法

React は、ユーザー インターフェイスを構築するための JavaScript ライブラリです。F...

MySQLコマンドラインでSQLファイルを実行するいくつかの方法

目次最初の方法: MySQLデータベースが接続されていない場合2 番目の方法: データベースがすでに...

MYSQL(電話番号、IDカード)データ非感応化の実装

1. データ感度低下の説明日常の開発ニーズでは、データの感度低下が頻繁に発生します。たとえば、ID ...

MySQL 8.0.14 のインストールと設定方法のグラフィックチュートリアル (一般)

MySQLサービス8.0.14のインストール(一般)の参考までに、具体的な内容は次のとおりです。イ...

Zabbixリモートコマンド実行の詳細な例

目次1つ。環境二。予防三つ。例Zabbix トリガーがしきい値に達すると、アラート メッセージの送信...