さまざまな理由から、(ほとんど)透明な<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>
CSSを使用して行うことができます pointer-events
。このプロパティは、Firefox 3.6以降、Chrome 2 +、IE 11+、およびSafari 4+でサポートされています。残念ながら、クロスブラウザの回避策。
#overlay {
pointer-events: none;
}
一時的にオーバーレイを非表示にした後、イベントを再起動することで実行できます。
この質問に対する最初の回答を参照してください: HTMLの「オーバーレイ」を使用すると、クリックがその背後の要素に移動できます
これを行うには、次のようにオーバーレイを非表示にします。
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();
}
このjQueryを使用
$("div").click(function(e){e.preventDefault();});
「div」をIDまたは要素に置き換えます