2009-12-12 6 views
7

私は、オーバーレイのdivをした:基本的に私は私のページ全体をカバーするために、このオーバーレイのdivをしたい基礎となるdivをクリッキングできないようにするには?

position: absolute; top: 0; left: 0; widht: 100%; height: 100%; 

。そしてそれは私が必要とすることをしますが、私はまた、基になるdivがunclickableである必要があります。 FF、Safari、Chromeでしかないのは確かです。 IEとOperaでは、あなたはまだ下にあるボタンをクリックすることができます。

誰も私がどのようにこの "unclickable基本的な動作"を達成することができますか?

答えて

1

オーバーレイdivのonclickハンドラを追加します。

1

また、新しいdivが他のすべての上にあるようにするには、z-indexを使用する必要があります。この属性がないと、あなたは1つが上になるとonclickの

はまた、入力種別の選択がzインデックス

1
を無視することが知られてIE(旧バージョン)のバグを認識して受信するという点で、ブラウザのなすがままにされています

あなたはjQueryのようなものを使用している場合は、

$("a:not(.overlay)").click(function(e) { e.preventDefault(); }); 
$("input:not(.overlay)").click(function(e) { e.attr("disabled", "disabled"); }); 

あなたのオーバーレイ(リンク、ボタンなど)オーバーレイクラス内のすべてをあげるような何かを行うことができ、これは効果的に他の上のすべてを無効にしますあなたのページ。

0

と間に合わオーバーレイCSS:

z-index: 10000; 

はそれの世話をします。

0

これは簡単にはJavaScriptを使用して行うことができます。

  • 高Zインデックス
  • でページ全体をマスキングdiv要素を作成します。マスクを除去すると、すべてのクリック
  • マスクキャッチを作り、ページ再びクリック可能になります。

このアプローチはもちろん、身体だけでなくすべてのdom要素で使用できます。ここ

var mask = $('<div></div>') 
    .css({ 
    position: 'absolute', 
    width: '100%', 
    height: '100%', 
    top: 0, 
    left: 0, 
    'z-index': 10000 
    }) 
    .appendTo(document.body) 
    .click(function(event){ 
    event.preventDefault(); 
    return false; 
    }) 

ワーキングサンプル:http://jsfiddle.net/GTPW3/3/

13
.class {pointer-events: none;} 
+1

これはIE11 <に動作しない、とさえIE11内のリンクでは動作しません(http://caniuse.com/#feat=pointer-イベント) – JDB

関連する問題