17

normaldiv1classの divがありnormaldivます。スタイル プロパティを介して z-index にアクセスしようとしていますが、スタイルシートで 2 に設定されているにもかかわらず、常に 0 を返します。

CSS:

.normaldiv
{
    width:120px; 
    height:50px; 
    background-color:Green;  
    position: absolute;
    left: 25px;
    top:20px;
    display:block;
    z-index:2;
}

`

HTML:

<div id="normaldiv1" 
     class="normaldiv" 
     newtag="new" 
     tagtype="normaldiv1" 
     onmousedown="DivMouseDown(this.id);" 
     ondblclick="EditCollabobaTag(this.id,1);" 
     onclick="GetCollabobaTagMenu(this.id);" 
     onblur="RemoveCollabobaTagMenu(this.id);">

JavaScript:

alert(document.getElementById('normaldiv1').style.zIndex);

JavaScript を使用して要素の z-index を見つけるにはどうすればよいですか?

4

2 に答える 2

19

z インデックスは CSS 部分で言及されているため、言及したコードから直接取得することはできません。次の例を使用できます。

function getStyle(el,styleProp)
{
    var x = document.getElementById(el);

    if (window.getComputedStyle)
    {
        var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp); 
    }  
    else if (x.currentStyle)
    {
        var y = x.currentStyle[styleProp];
    }                     

    return y;
}

要素 ID とスタイル属性を渡して関数を取得します。

例えば:

var zInd = getStyle ( "normaldiv1" , "zIndex" );
alert ( zInd );

Firefox の場合、zIndex の代わりに z-index を渡す必要があります

var zInd = getStyle ( "normaldiv1" , "z-index" );
 alert ( zInd );

参照

于 2009-09-07T07:33:29.480 に答える
8

これを試して

window.getZIndex = function (e) {      
  var z = window.document.defaultView.getComputedStyle(e).getPropertyValue('z-index');
  if (isNaN(z)) return window.getZIndex(e.parentNode);
  return z; 
};

利用方法

var myZIndex = window.getZIndex($('#myelementid')[0]);

(親がルートに到達すると、0 が返されます)

于 2014-06-10T08:42:30.047 に答える