• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:こんにちは、javascriptにてボタンを押すと画像が透明度が下がる)

JavaScriptでボタンを押すと画像の透明度が下がる方法

このQ&Aのポイント
  • JavaScriptを使用してボタンを押すと画像の透明度が下がる動きを作成していますが、フェードアウトした画像を元の透明度にフェードインすることができません。
  • 現在、if文のクラスに書かれている変数の扱いがよくわからず、正しい方法について質問させていただきました。
  • forループを使用してカウントから取得し、すべての画像に特定のクラスを付ける方法も試しましたが、うまく動作しませんでした。適切な方法があれば教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

#1です。 多少(?)無駄はあるけどより単純な方法で。 <script type="text/javascript"> $(function(){ $(".thumbnail img").click(function(){ $(".thumbnail img").each(function(){ if($(this).css("opacity")!=1.0) $(this).fadeTo("normal", 1.0); }); $(this).fadeTo("normal", 0.4); }); }); </script>

mabuo
質問者

お礼

おお、動きました!ありがとうございます!javascriptの記述はまだ不慣れなものでして 助かりました。ちなみに、eachってちょっと調べてみましたが、each(.thumbnail内のにあるすべてのimgを対象)として繰り返しif文でフェードの状態を確認しているのですね。 普段perlをよく書いているので、書き方が大分違うことがわかり非常に参考になりました。 ありがとうございました!

その他の回答 (1)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

ボタンが見当たらないんだけど・・・画像をクリックするたびに透明<>半透明を切り替えるって事でいいのかな? <script type="text/javascript"> $(function(){ $(".thumbnail img").click(function(){ if($(this).css("opacity")!=1.0){//opacityが1.0じゃなければ $(this).fadeTo("normal", 1.0);//opacityを1.0に戻す } else { $(this).fadeTo("normal", 0.4);//opacityを0.4にする } }); }); </script>

mabuo
質問者

補足

回答ありがとうございます。 はい、steel_grayさんのおっしゃるとおり、ボタンではなく、画像でした。 表現悪く失礼しました。 実装してみたところ、対象の画像をもう一度押さないと元の透明度に戻らないようです。 こちらも表現が悪かったようです。 動きとしては、「画像(1)」を押下し、フェードアウトします。「画像(2)」を押すと、 「画像(1)」が元の透明度にフェードインし、「画像(2)」がフェードアウトする動きです。 何度もすみませんが、わかるようでしたらご教授をお願いいたします。

関連するQ&A