0

奇妙な jQuery.offset() の問題があります。

コンポーネントが階層化され、その下のリンクの機能が取り除かれています。上層は透​​明で空です。

私の解決策は、すべてのリンク (すべてのa要素) を反復処理し、それらの位置 (上、左、高さ、幅の値) と href を取得しa、同じ位置に新しい要素を作成して上のレイヤーに配置することです。

問題: この方法は、4 つのリンクのうち 3 つに有効です。あるケースでは、新しい要素が上から約 120 ピクセル離れた位置にありますが、サイズと左へのオフセットは問題ありません。最後のアイデアはありますか?

$("#container A").each(function(index){
    var top = $(this).offset().top;
    var left = $(this).offset().left;
    var width = $(this).width();
    var height = $(this).height();  
    var href = $(this).attr("href");

    $('<A id="layer'+index+'"></A>').addClass("overlayer").css("left", left).css("top", top).css("width", width).attr("href", href).css("height", height).appendTo('#toplayer');
}

:#containerはすべてのリンクを含む下層、#toplayerは上層です。

.overlayer の CSS クラス:

.overlayer {
    background-color: #cc00cc;
    position: absolute;
    z-index: 10;
    cursor: hand;
}
4

1 に答える 1

0

ブラウザーのサポートでpointer-events: none十分な場合は、JS ハックの代わりにそれを上位カバー レイヤーに使用できます。

それをサポートしていない一部の古い IE には、おそらく使用できる背景なしでボックスをクリックできる「機能」があります。

于 2015-05-11T08:00:09.417 に答える