1

DIVの表示を切り替える簡単なJS関数があります。デフォルトでは、DIV表示は「なし」に設定されています。インラインスタイルを使用して表示を設定すると正常に機能しますが、ヘッドでスタイルを設定すると、関数を2回実行した後にのみ機能します。したがって、関数で表示が設定された後、表示がnoneに設定されていることだけがわかります。ヘッドのCSSに設定されていることを認識しません。インラインスタイルを使用すると、正常に機能します。

また、条件文を次のように変更した場合:

if (OBJ.style.display == 'none')

if (OBJ.style.display = 'none')
4

3 に答える 3

1

window.getCurrentStyleまたはを使用element.currentStyleして、頭または体からスタイルを取得します。これらはさまざまなブラウザでサポートされているため、クロスブラウザの例を次に示します。

function getStyle( elem, style ) {
  var a = window.getComputedStyle,
      b = elem.currentStyle;

  if ( a ) return a( elem ).getPropertyValue( style );
  else if ( b ) return b[ style ];
}

getStyle( document.getElementById('OBJ'), 'display' )
于 2012-08-03T16:21:34.563 に答える
0

要素のstyleプロパティには、継承されたスタイルやスタイル シートからのスタイルではなく、インライン スタイルのみが含まれます。

プロパティを使用してoffsetHeight、要素が表示されていない場合はゼロであるため、要素に任意のサイズがあるかどうかを確認できます。

if (OBJ.offsetHeight == 0) ...
于 2012-08-03T16:23:38.643 に答える