- ベストアンサー
JavaScriptでボタンを押すと画像の透明度が下がる方法
- JavaScriptを使用してボタンを押すと画像の透明度が下がる動きを作成していますが、フェードアウトした画像を元の透明度にフェードインすることができません。
- 現在、if文のクラスに書かれている変数の扱いがよくわからず、正しい方法について質問させていただきました。
- forループを使用してカウントから取得し、すべての画像に特定のクラスを付ける方法も試しましたが、うまく動作しませんでした。適切な方法があれば教えていただけると助かります。
- みんなの回答 (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>
その他の回答 (1)
- steel_gray
- ベストアンサー率66% (1052/1578)
ボタンが見当たらないんだけど・・・画像をクリックするたびに透明<>半透明を切り替えるって事でいいのかな? <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>
補足
回答ありがとうございます。 はい、steel_grayさんのおっしゃるとおり、ボタンではなく、画像でした。 表現悪く失礼しました。 実装してみたところ、対象の画像をもう一度押さないと元の透明度に戻らないようです。 こちらも表現が悪かったようです。 動きとしては、「画像(1)」を押下し、フェードアウトします。「画像(2)」を押すと、 「画像(1)」が元の透明度にフェードインし、「画像(2)」がフェードアウトする動きです。 何度もすみませんが、わかるようでしたらご教授をお願いいたします。
お礼
おお、動きました!ありがとうございます!javascriptの記述はまだ不慣れなものでして 助かりました。ちなみに、eachってちょっと調べてみましたが、each(.thumbnail内のにあるすべてのimgを対象)として繰り返しif文でフェードの状態を確認しているのですね。 普段perlをよく書いているので、書き方が大分違うことがわかり非常に参考になりました。 ありがとうございました!