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 にオーディオファイルを挿入してブラウザで再生する場合の互換性の問題

推薦する

NestJsはMongooseを使用してMongoDBを操作する

最近、NestJs フレームワークを学び始めました。学習コストは他のフレームワークよりもはるかに高く...

Dockerカスタムネットワーク実装

目次1. コンテナ相互接続を実現するためにネットワークをカスタマイズする2. ネットワーク接続1. ...

Linux システムに docker をインストールし、ssh 経由で docker コンテナにログインする方法

注: 私はCentosを使ってdockerをインストールしていますステップ1: Dockerをインス...

jsイベント委譲の詳細な説明

1. 各関数はオブジェクトであり、メモリを占有します。メモリ内のオブジェクトが増えるほど、パフォーマ...

Docker イメージのエクスポート、インポート、コピーの例の分析

最初の解決策は、イメージを公開イメージリポジトリにプッシュし、それをプルダウンすることです。 2 番...

MySQL 5.6 ルートパスワード変更チュートリアル

1. MySQL 5.6をインストールした後、正常に有効化できないMySQL の圧縮バージョンは、解...

Vue.js で AntV X6 を使用する手順の例

目次0x0 はじめに0x1 インストール0x2 ノードサイドバー0x3 統合例0x0 はじめにプロジ...

MySQL 5.7.23 解凍バージョンのインストールチュートリアル(画像とテキスト付き)

毎回インストールチュートリアルを探すのは面倒なので、後で確認できるように手順をバックアップします。解...

MySQL の DOS ウィンドウの文字化け問題を解決する方法

文字化けしたコードの問題は次のとおりです。 この問題の原因は非常に単純です。コマンドラインのエンコー...

Linux でファイルのユーザーとグループを変更する方法

Linux では、ファイルが作成されると、そのファイルの所有者はファイルを作成したユーザーになります...

MySQL データベースのパフォーマンス最適化の概要

目次なぜ最適化するのですか? ?どこから始めますか? ?解決策は何ですか? ? ?どうやって選ぶ? ...

MySQL マルチテーブル結合入門チュートリアル

接続は、実際の外部キー(人工的に作成された 2 つのテーブル間の対応関係を指します。対照的に、FOR...

Vue を使用して 2 つのデータ セットの違いを比較する視覚化コンポーネントの詳細な説明

目次必要:要点:これまでの要点に従って、コンポーネントのプロパティを確立できます。コンポーネントの基...

Windows システム mysql5.7.18 インストール グラフィック チュートリアル

Windows システム向け MySQL インストール チュートリアルダウンロード1. https:...

Ubuntu システムログで /var/log/messages を設定する方法

1. 問題の説明今日、システム ログ ファイルを確認する必要がありますが、/var/log/mess...