[解決済み] jQueryで要素が表示されているかどうかを検出する [重複]。
質問
使用方法
.fadeIn()
と
.fadeOut()
私は、ページ上の要素を隠したり見せたりしていますが、2つのボタン、1つは隠すためのボタン、もう1つは見せるためのボタンを使っています。今、私は
一つ
ボタンでトグル
両方
.
私のHTML / JavaScriptをそのまま。
<a onclick="showTestElement()">Show</a>
<a onclick="hideTestElement()">Hide</a>
function showTestElement() {
$('#testElement').fadeIn('fast');
}
function hideTestElement() {
$('#testElement').fadeOut('fast');
}
私のHTML/JavaScriptはこうありたいと思います。
<a onclick="toggleTestElement()">Show/Hide</a>
function toggleTestElement() {
if (document.getElementById('testElement').***IS_VISIBLE***) {
$('#testElement').fadeOut('fast');
} else {
$('#testElement').fadeIn('fast');
}
}
要素が表示されているかどうかは、どのように検出するのですか?
どのように解決するのですか?
探しているのは
.is(':visible')
ただし、他の場所でjQueryを使用していることを考えると、セレクタを変更したほうがいいでしょう。
if($('#testElement').is(':visible')) {
// Code
}
ここで重要なのは、ターゲット要素の親要素のうち1つでもhiddenになっていれば
.is(':visible')
を返します。
false
(これは理にかなっている)。
jQuery 3
:visible
は、多くの要素を検査するために DOM ツリーを横断しなければならないので、非常に遅いセレクタであるという評判がありました。しかし、jQuery 3には良いニュースがあります。
この記事
が説明しています(
Ctrl
+
F
について
:visible
):
GoogleのPaul Irishによる検出作業のおかげで、:visibleのようなカスタムセレクタが同じドキュメントで何度も使用される場合に、余分な作業を省略できるケースがいくつかあることがわかりました。このケースでは、最大で17倍高速化されました。
このように改善されても、:visible や :hidden などのセレクタは、要素が実際にページ上に表示されているかどうかをブラウザに依存するため、コストが高くなる可能性があることに留意してください。そのため、最悪の場合、CSSスタイルとページレイアウトの完全な再計算が必要になる可能性があります。ほとんどの場合、これらのセレクタの使用をお勧めしませんが、これらのセレクタがパフォーマンスの問題を引き起こしているかどうかを判断するために、ページをテストすることをお勧めします。
さらに具体的なユースケースに展開すると、jQueryの組み込み関数で
$.fadeToggle()
:
function toggleTestElement() {
$('#testElement').fadeToggle('fast');
}
関連
-
vue3レスポンシブ対応のためのsetup+ref+reactive
-
[解決済み] 要素外でのクリックを検出するにはどうすればよいですか?
-
フロントエンド非同期(アシンク)ソリューション(全ソリューション)
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] jQueryでページを更新するにはどうすればよいですか?
-
[解決済み] jQueryで要素にスクロールする
-
[解決済み] jQueryで複数のクラスを持つ要素を選択するにはどうすればよいですか?
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
vue3レスポンシブ対応のためのsetup+ref+reactive
-
親子コンポーネント通信を解決する3つのVueスロット
-
jQueryのコピーオブジェクトの説明
-
Vueのクラススタイルの使い方の詳細
-
[解決済み】Uncaught SyntaxError: JSONの位置0に予期しないトークンuがあります。
-
[解決済み】ローカルファイルを開くことができません - Chrome: ローカルリソースの読み込みが許可されていない
-
[解決済み】エラー。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりませんでした。
-
nodejs unhandledPromiseRejectionWarning メッセージ
-
フロントエンド非同期(アシンク)ソリューション(全ソリューション)
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?