web-dev-qa-db-ja.com

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

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

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

<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>
88
David Wolever

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

#overlay {
  pointer-events: none;
}
149
Ionuț G. Stan

一時的にオーバーレイを非表示にした後、イベントを再起動することで実行できます。

この質問に対する最初の回答を参照してください: HTMLの「オーバーレイ」を使用すると、クリックがその背後の要素に移動できます

2
Joeri Sebrechts

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

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();
}
0
Donald Duck

このjQueryを使用

$("div").click(function(e){e.preventDefault();});

「div」をIDまたは要素に置き換えます

0