HTML / CSS:divをクリックに対して「非表示」にしますか?


98

さまざまな理由から、<div>一部のテキストを(ほとんど)透明にする必要があります。ただし、これはテキストがクリックできない(リンクをクリックする、または選択するなど)ことを意味します。このdivをクリックや他のマウスイベントに対して単に「非表示」にすることは可能でしょうか?

たとえば、overlaydivはテキストをカバーしていますが、overlaydivを介してテキストをクリック/選択できるようにしたいと思います。

<div id="container">
    <p>Some text</p>
    <div id="overlay" style="position: absolute; top: 0;
                             left: 0; width: 100%; height:100%">
        ... some content ...
    </div>
 </div>

1
短い答えはノーです。(これまで何度も議論されてきましたが、これを見つけるのは難しいため、良いキーワードを考えることができません...)透明なDIVには何が必要ですか?
ペッカ

2
それは可能ではないと思います。多分あなたは「様々な理由」、つまりあなたが本当に達成したいことについて話しますか?
davehauser、2010

1
@Null OPが何をしたいかが明確になるまで-1を保留します。
ペッカ

1
NullUserException-彼が提案していることは、人々が彼のウェブサイトからコンテンツをコピーするのをどのように阻止するでしょうか?どちらかと言えば、彼は反対のことをしようとしています-彼は彼の透明なdivの効果(テキストをクリックして選択するのを難しくする)を取り除きたいと思っています。
Hammerite 2010

@ハンマーあなたは正しいです。反対票を削除しました。
NullUserException 2010

回答:


159

CSSを使用して行うことができますpointer-events。このプロパティは、Firefox 3.6以降、Chrome 2以降、IE 11以降、Safari 4以降でサポートされています。残念ながら、私はクロスブラウザーの回避策についての知識を持っていません。

#overlay {
  pointer-events: none;
}

3
ああ、それはよさそうだ!さて、唯一の問題は、一部の子にポインタイベントを受け入れさせる必要があることです…しかし、おそらくそれを理解することができます。ありがとう!
David Wolever、2010

2
かっこいい:pointer-events: visibleそれは私が望むものを正確に行うように見えます。ありがとう!
David Wolever、2010

クロムで動作します!これが可能であることが大好きです!
BT

ポインターイベントのポリフィルがあります:github.com/kmewhort/pointer_events_polyfill
rink.attendant.6 2015

最も単純で最もまっすぐな答え!
ジョーンズG


0

これを行うには、次のようにオーバーレイを非表示にします。

overlay.onclick = function(){
    window.event.srcElement.style.visibility = "hidden";
    var BottomElement = document.elementFromPoint((navigator.appName.substring(0,3) == "Net") ? e.clientX : window.event.x,(navigator.appName.substring(0,3) == "Net") ? e.clientY : window.event.y);
    window.event.srcElement.style.visibility = "visible";
    BottomElement.click();
}


-1

divのすべてのイベント(またはひよこ)を無効にする別の方法は、デフォルトでタグが付けられているすべてのイベントをunbind()することです。

  $('#myDivId').unbind();

または

  $('#myDivId').unbind("click");

jqueryoff()を支持してを使用しunbind()てハンドラを削除するだけで、divがクリックをキャプチャするのを妨げません。
pmoleri
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.