[解決済み] 要素がDOMに表示されているかどうかを確認する
2022-03-19 02:40:42
質問
ある要素が表示されているかどうかを、純粋なJS(jQueryなし)でチェックする方法はありますか?
そこで、例えばこのページでは パフォーマンスバイク トップメニューの「お買い得情報」にカーソルを合わせると、お買い得情報のウィンドウが表示されますが、当初は表示されていませんでした。HTMLの中にはあるのですが、表示されていないのです。
では、あるDOM要素が与えられたとき、それが表示されているかどうかを確認するにはどうすればよいのでしょうか。試してみました。
window.getComputedStyle(my_element)['display']);
が、うまくいかないようです。 どの属性をチェックすればいいんだろう。思い当たる節があります。
display !== 'none'
visibility !== 'hidden'
他に見落としがあるかもしれないので、教えてください。
解決方法は?
によると
このMDNドキュメント
の場合、要素の
offsetParent
プロパティは
null
は、その親が表示スタイルプロパティによって非表示にされた場合、いつでも表示されます。 ただ、その要素が固定されていないことを確認してください。 これをチェックするスクリプトは、もし
position: fixed;
要素で構成されたページでは、次のようになります。
// Where el is the DOM element you'd like to test for visibility
function isHidden(el) {
return (el.offsetParent === null)
}
一方、もし
する
は、この検索に引っかかる可能性のある位置固定の要素があるため、悲しいことに(徐々に)
window.getComputedStyle()
. その場合の関数は、次のようになるかもしれません。
// Where el is the DOM element you'd like to test for visibility
function isHidden(el) {
var style = window.getComputedStyle(el);
return (style.display === 'none')
}
しかし、この操作を何度も繰り返す必要がある場合は、おそらく避けた方がよいでしょう。
関連
-
WeChatアプレット用ユニアプリによるグローバルシェアリング
-
[解決済み] テスト
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] どのDOM要素にフォーカスがあるかを調べるには?
-
[解決済み] スクロールした後に要素が表示されているかどうかを確認するには?
-
[解決済み] DOM要素が現在のビューポートで表示されているかどうかを確認するにはどうすればよいですか?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Vueにシンプルなメモ帳機能を実装
-
vueの補間表現とv-textディレクティブの違いについて
-
[解決済み】リソースの読み込みに失敗した:Bind関数でサーバーが500(Internal Server Error)のステータスで応答した【非公開
-
[解決済み】GETできない / Nodejsエラー
-
[解決済み】gulp anythingを実行するたびに、アサーションエラーが発生します。- タスク関数を指定する必要があります
-
[解決済み】(Google Map API) Geocodeは以下の理由で成功しませんでした。REQUEST_DENIED
-
HTML5 LocalStorage ローカルストレージとセッションストレージの使用法
-
nullのプロパティinnerHTMLを読み取れません エラーメッセージ
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] DOM要素が現在のビューポートで表示されているかどうかを確認するにはどうすればよいですか?