質問するログイン新規登録
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

1回答

228閲覧

ボタンをhoverした際に対応する画像を切り替えたい

buk

総合スコア53

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2023/12/07 03:25

編集2023/12/07 03:26

0

0

<style> .img-area { position: relative; overflow: hidden; background-size: cover; height: 42vw; background-image: url("images/img_a.jpg"); background-repeat: no-repeat; background-position: center center; } </style> <div class="link-wrap"> <div class="link-btn"> <ul> <li> <a href="#" data-image="images/img_a.jpg"> <dl> <dt>A部品</dt> <dd>eng A</dd> </dl> </a> </li> <li> <a href="#" data-image="images/img_b.jpg"> <dl> <dt>B部品</dt> <dd>eng B</dd> </dl> </a> </li> <li> <a href="#" data-image="images/img_c.jpg"> <dl> <dt>C部品</dt> <dd>eng C</dd> </dl> </a> </li> <li> <a href="#" data-image="images/img_c.jpg"> <dl> <dt>D部品</dt> <dd>eng D</dd> </dl> </a> </li> </ul> </div> <div class="photo"> <div class="img-area"></div> </div> </div>
$(document).ready(function () { // Default image var defaultImage = 'images/img_a.jpg'; // Change image on button hover with smooth fade effect $('.link-btn a').hover(function () { var imageUrl = $(this).data('image') || defaultImage; // Fade in the new image $('.img-area').fadeOut(250, function () { $(this).css('background-image', 'url(' + imageUrl + ')').fadeIn(250, function () { $(this).addClass('hovered'); // Add class after fadeIn completes }); }); }, function () { // Hover out (do nothing to keep the last hovered image) }); });

上記のようにして、hoverの際に画像を切り替えする動作をなんとか実装できました。
しかし、もうひとつ動きを加えたいのですが、方法がわかりません。
.hoveredを.img-areaに追加して、cssでなんとかしようとしましたが、うまくいかず、

参考サイトの「Our Business」のように、

https://www.fujibo.co.jp/
hoverしたらふわっと画像を下からfadeInをさせたいです。

ご教授ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

background-image を切替るという実装をししていますが、それだと、
前の画像がfadeout
同時に次の画像が下からfadein
というように動作を実現しようとすると複雑になります。

4つの画像のimg要素を 、position: absoluteで重ねて配置しておいて、jsでfadeoutしたい要素、fadeinしたい要素にそれぞれクラスを付加するという手法がシンプルだと思います。
リンク先もそのようにしています。fadeoutしたい要素にis-outクラス adeinしたい要素にis-showクラス、を付与してます。
CSSの設定は開発者ツールで確認できますので、それを参考にしてみてはどうでしょうか。

投稿2023/12/07 04:28

hatena19

総合スコア34367

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問