75

透明なテキスト画像を含むdivをドキュメントの最高のz-indexとして設定するために、10,000という数字を選択し、問題を解決しました。

以前は3番で推測していましたが、効果はありませんでした。

それで、他のすべての要素のz-indexよりも高いz-indexを理解するためのより科学的な方法はありますか?

Firebugでこのメトリックを探してみましたが、見つかりませんでした。

4

18 に答える 18

49

わかりやすくするために、abcoder サイトからいくつかのコードを盗みます。

  var maxZ = Math.max.apply(null, 
    $.map($('body *'), function(e,n) {
      if ($(e).css('position') != 'static')
        return parseInt($(e).css('z-index')) || 1;
  }));
于 2009-07-13T08:07:14.107 に答える
40

次のようなfindHighestZIndex特定の要素タイプを呼び出すことができます。<div>

findHighestZIndex('div');

findHighestZindex次のように定義された関数を想定します。

function findHighestZIndex(elem)
{
  var elems = document.getElementsByTagName(elem);
  var highest = Number.MIN_SAFE_INTEGER || -(Math.pow(2, 53) - 1);
  for (var i = 0; i < elems.length; i++)
  {
    var zindex = Number.parseInt(
      document.defaultView.getComputedStyle(elems[i], null).getPropertyValue("z-index"),
      10
    );
    if (zindex > highest)
    {
      highest = zindex;
    }
  }
  return highest;
}
于 2009-07-13T15:14:00.040 に答える
4

デフォルトのプロパティなどはありませんが、JavaScriptを記述して、すべての要素をループし、それを把握することができます。または、jQueryのようなDOM管理ライブラリを使用する場合は、そのメソッドを拡張して(または、すでにサポートされているかどうかを確認して)、ページの読み込みから要素のzインデックスの追跡を開始し、最高のz-を取得するのは簡単になります。索引。

于 2009-07-13T08:03:17.937 に答える
4

この問題を解決する最善の方法は、私の意見では、z-indexさまざまな種類の要素にどの種類のesが使用されるかについての規則を設定することです。z-index次に、ドキュメントを振り返ることで、使用する正しいものを見つけることができます。

于 2009-07-13T08:05:22.957 に答える
4

あなたが観察しているのはブードゥーだと思います。もちろん、完全なスタイル シートにアクセスできなければ、確実に判断することはできません。しかし、ここで実際に起こったことは、配置された要素のみが の影響を受けることを忘れている可能性が高いと思いますz-index

さらに、z-indexes は自動的に割り当てられず、スタイル シートでのみ割り当てられます。つまり、他のz-indexed 要素z-index:1;がなければ、他のすべての上に配置されます。

于 2009-07-13T08:06:23.533 に答える
4

私はあなたがこれを自分でしなければならないと思います...

function findHighestZIndex()
{
    var divs = document.getElementsByTagName('div');
    var highest = 0;
    for (var i = 0; i < divs .length; i++)
    {
        var zindex = divs[i].style.zIndex;
        if (zindex > highest) {
            highest = zindex;
        }
    }
    return highest;
}
于 2009-07-13T08:07:43.920 に答える
2

jQuery の使用:

要素が指定されていない場合は、すべての要素がチェックされます。

function maxZIndex(elems)
{
    var maxIndex = 0;
    elems = typeof elems !== 'undefined' ? elems : $("*");

    $(elems).each(function(){
                      maxIndex = (parseInt(maxIndex) < parseInt($(this).css('z-index'))) ? parseInt($(this).css('z-index')) : maxIndex;
                      });

return maxIndex;
}
于 2015-04-07T02:40:24.847 に答える