1

コードについて質問がありました。

$(this).css('opacity')要素が透明かどうかを確認するために使用します。要素が透明な場合、0を返す必要があります。

ただし、if( $(this).css('opacity') !== 0 )0が返されたときに実行されます。なぜこれが発生するのか考えてみてください。

前もって感謝します!

私のコードはここにあります:

http://jsfiddle.net/dennisboys/f3JuH/2/

4

4 に答える 4

5

これは、CSS値が常に文字列として返されるためです(数値を返すjQueryメソッドとは異なります)heightwidth

このテストがうまくいくかどうか試してみてください。

if( parseFloat($(this).css('opacity')) !== 0 )

または、単に弱い(型強制)不等式を使用します。

if( $(this).css('opacity') != 0 )
于 2013-01-31T08:42:44.327 に答える
2

CSS値は文字列として返されます。このように状態を変えてください。

if( $(this).css('opacity') !== "0" )

また

if(parseFloat($(this).css('opacity'))!==0)
于 2013-01-31T08:42:41.567 に答える
1

最初にその値を解析する必要があります。

if(parseFloat($(this).css('opacity'))!==0)

そしてworkinデモ

Edit:parseIntをparseFloatに

于 2013-01-31T08:42:57.537 に答える
0

その理由は、条件が実際に真だからです。.css('opacity') は文字列を返します。したがって、あなたの場合、同じではない演算子(!==)を使用しているため、もちろん数値0とは異なる「0」が返されます。

おそらく、不等号 (!=) を使用する必要があります。

'0' !== 0 --> 真 '0' != 0 --> 偽

于 2013-01-31T08:50:54.900 に答える