CSS 属性を使用してマウス イベントをブロックする方法 (マウス クリックは上位の要素を貫通する可能性があります)

CSS 属性を使用してマウス イベントをブロックする方法 (マウス クリックは上位の要素を貫通する可能性があります)

由来: 数日前、テスターから写真を見るという要件が送られてきました。

ここに画像の説明を挿入

この要件を見たとき、私は少し混乱しました。現状では、日付コンテンツボックスの空白領域がクリックされたときのみ、クリックイベントに反応してドロップダウン日付メニューが表示されます。

ここに画像の説明を挿入

このアイコンは日付コンテンツ ボックスに必ず配置します。レイヤー サイズは日付コンテンツ ボックスよりも大きいため、クリックしてもクリック イベントに反応しません。私の最初の反応はイベントクリックの浸透でしたが、それをどのように達成するのでしょうか?今まで無視していた知識の盲点に触れたような気がします。

私はとても混乱していたので、虎のように行動し、Google でプログラミングを始めました...

事実は、科学的にインターネットを閲覧することが重要であることを証明しています。Google は Baidu よりも正確です。私はまた Baidu の広告について不満を言っています…

アイコンで覆われたコンテンツ ボックス領域もクリック イベントに応答できるようにするには、 poniter-events cssプロパティを使用します。

poniter-events属性には多くの値がありますが、そのほとんどは svg に関連するものであり、直接スキップできます。一般的な属性値はnone | auto 2 つです。

auto : これはpointer-events属性が指定されていない場合と同じように動作します。 none : 要素はマウス イベントのtargetにはなりません。ただし、子孫要素のpointer-eventsプロパティに別の値が指定されている場合は、マウス イベントを子孫要素に送信できます。その場合、マウス イベントはキャプチャ段階またはバブリング段階で親要素のイベント リスナーをトリガーします。

poniter-eventsの互換性を見てみましょう:

デスクトップブラウザ

IE : 11+ (IE6~IE10 はサポートされていません) Firefox : 3.6+ Chrome : 4.0+ Safari : 6.0 Opera : 15.0

モバイルデバイスブラウザ

iOS Safari : 6.0 Android Browser : 2.1以上Android Chrome : 18.0以上

これを見ると、今回私が遭遇した問題を基本的に解決できます。

ここに画像の説明を挿入

問題を解決した後、新たな疑問が生じます。マウス クリックが外側のマスクを貫通できるようにする以外に、 poniter-events一般的なアプリケーション シナリオは他にありますか?

none値の効果を考慮すると、イベントのクリック動作をキャンセルできるはずです。たとえば、a ラベル リンクをクリックできないようにし、ボタンの複数回のクリックやフォームの繰り返し送信などを避けます。さらに、属性値を通じて発見できるアプリケーションは他にもたくさんあります。

要約する

CSS 属性を使用してマウス イベントをブロックする (マウス クリックは上位の要素を貫通する可能性があります) 方法に関するこの記事はこれで終わりです。マウス イベントをブロックするためのより関連性の高い CSS 属性については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  MySQL シリーズ: MySQL リレーショナル データベースの基本概念

>>:  HTML にオーディオファイルを挿入してブラウザで再生する場合の互換性の問題

推薦する

HTML マークアップ言語 - フォーム

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

JavaScriptで配列かどうかを判断するためのさまざまな方法のまとめ

目次序文配列.isArrayコンストラクタインスタンスプロトタイプオブジェクト.プロトタイプ.toS...

1分でVueが右クリックメニューを実装

目次レンダリングインストールコードの実装カスタムスタイル要約する効率的に要件を満たし、車輪の再発明を...

Docker コンテナでネットワーク リクエストが遅くなる問題の解決策

Docker の使用中に、いくつかの問題が発見されました。npm install や bundle ...

IOSデータベースアップグレードデータ移行の詳細な例

IOSデータベースアップグレードデータ移行の詳細な例まとめ:昔、データベースのバージョン アップグレ...

Navicat が MySQL に接続するときに発生する 1045 エラーの解決方法

ローカル データベースに接続すると、Navicat for MySQL は以下のように 1045 エ...

JS を使用してデータ型を決定する 4 つの方法

目次序文1. 型2. インスタンス3. コンストラクター詳細: 4. 文字列要約する序文Javasc...

LINUX でポートが占有されているかどうかを確認する方法

ポートが占有されているかどうかは、これまで一度もわかりませんでした。多くの人に尋ねて、ようやくわかり...

無視されたDOCTYPE記述の分析

doctype もその 1 つです。 <!DOCTYPE HTML PUBLIC "...

Linux コマンドラインで電卓を使用する 5 つのコマンド

みなさんこんにちは。私は梁旭です。 Linux を使用するときに、計算を行う必要がある場合があり、そ...

エラー 1045 (28000): ユーザー ''root''@''localhost'' のアクセスが拒否されました (パスワード使用: YES) 実用的な解決策

昨日はデータベースへの接続に問題はありませんでしたが、今日はデータベースへの接続時にこのエラーが報告...

MySQLは集計関数を使用して単一のテーブルをクエリします

集計関数データセットに作用し、そのデータセットの値を返します。 count: 統計結果のレコード数。...

カルーセル効果を実現するための純粋なjs

この記事では、カルーセルマップの効果を実現するためのjsの具体的なコードを参考までに共有します。具体...

MySQLがファントムリードを解決する方法の詳細な説明

1. ファントムリーディングとは何ですか?トランザクションにおいて、複数のクエリの後に結果セットの数...

React NativeのstartReactApplicationメソッドの簡単な分析

今回は、 RNの起動処理を整理しました。最後のstartReactApplication比較的複雑で...