要素をクリックできないようにする(その背後にあるものをクリックする)


92

ユーザーがタッチスクリーン(モバイル)をスクロールしているときにページをオーバーレイする固定画像があります。

その画像を「クリック不可」または「非アクティブ」などにしたいので、ユーザーがその画像をタッチしてドラッグした場合でも、画像がないかのようにその後ろのページがスクロールして、インタラクションが「ブロック」されます。

これは可能ですか?必要に応じて、私が言っていることを例示するスクリーンショットを提供することを試みることができます。

ありがとう!

回答:


181

CSSの設定- pointer-events: none画像とのマウスの相互作用を削除する必要があります。IE以外のすべてでかなりうまくサポートされています。

これpointer-eventsが取ることができる値の完全なリストです。


2
完璧!私はpointer-events前に出くわしたことがありませんでした、これはまさに私が探していたものです。ありがとうございました!
hannebaumsaway 2013

1
@Dusty Kindaは理にかなっています。マウスの操作を無効にしているのに、マウスの操作が必要です。あなたの特定のユースケースは何ですか?ポインターは要素がクリック可能であることを意味するため、UXの観点からは直感に反しているように見えます。JSFiddleを一緒に投げれば、私は一見することができます。
クリスブラウン

@ChrisBrownカーソルの変更は、少し面倒でした。これが私が思いついたもののほんの少しですjsfiddle.net/cxwvdos0ボタンを1秒間無効にし、カーソルを変更しないというのはちょっとクレイジーです。jQueryunbindbind私は、無名関数を変換したいのであればうまくいったと思います。応答をありがとう!
ダスティ

17

CSSポインターイベントはあなたが見たいものです。あなたの場合、pointer-eventsを "none"に設定してください。例については、このJSFiddleを見てください... http://jsfiddle.net/dppJw/1/

アイコンをダブルクリックしても、段落をクリックしたと表示されることに注意してください。

div.child {
    ...    
    background: #fff;
    pointer-events: none //This line is the key!
} 

1
例をありがとう!
hannebaumsaway 2013

シングルクリック*、およびコード例(アイコンのクリック)はFF68.0では機能しません。
アンドリュー

3

JavaScriptを使用したい場合:

document.getElementById("x").style.pointerEvents = "none";
<a href="https://www.google.com" id="x" />Unclickable Google Link</a>
<br>
<a href="https://www.google.com" id="" />Clickable Google Link</a>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.