コードについて質問がありました。
$(this).css('opacity')
要素が透明かどうかを確認するために使用します。要素が透明な場合、0を返す必要があります。
ただし、if( $(this).css('opacity') !== 0 )
0が返されたときに実行されます。なぜこれが発生するのか考えてみてください。
前もって感謝します!
私のコードはここにあります:
コードについて質問がありました。
$(this).css('opacity')
要素が透明かどうかを確認するために使用します。要素が透明な場合、0を返す必要があります。
ただし、if( $(this).css('opacity') !== 0 )
0が返されたときに実行されます。なぜこれが発生するのか考えてみてください。
前もって感謝します!
私のコードはここにあります:
これは、CSS値が常に文字列として返されるためです(数値を返すjQueryメソッドとは異なります)height
。width
このテストがうまくいくかどうか試してみてください。
if( parseFloat($(this).css('opacity')) !== 0 )
または、単に弱い(型強制)不等式を使用します。
if( $(this).css('opacity') != 0 )
CSS値は文字列として返されます。このように状態を変えてください。
if( $(this).css('opacity') !== "0" )
また
if(parseFloat($(this).css('opacity'))!==0)
最初にその値を解析する必要があります。
if(parseFloat($(this).css('opacity'))!==0)
Edit:parseIntをparseFloatに
その理由は、条件が実際に真だからです。.css('opacity') は文字列を返します。したがって、あなたの場合、同じではない演算子(!==)を使用しているため、もちろん数値0とは異なる「0」が返されます。
おそらく、不等号 (!=) を使用する必要があります。
'0' !== 0 --> 真 '0' != 0 --> 偽