※ ChatGPTを利用し、要約された質問です(原文:animateを使用したマウスオーバー時の反応)
animateを使用したマウスオーバー時の反応
このQ&Aのポイント
jQuery初心者の方がanimateを使用してマウスオーバー時の反応を実現する方法について教えてください。
質問者はtop_odaiクラス内のリンクを探して、そのBOX全体がリンクになるようにしたいと考えています。
現在のコードでは全ての.top_odaiクラスに反応してしまうため、1つのリンクに触れた時にそれに対応するBOXのみ動作させる方法についてアドバイスをお願いします。
jQuery初心者で、知識が浅いのでご教授頂けると幸いです。
横1列に下記のような順番でテキストや画像を並べています。
=================================
タグ 画像 テキストテキストテキスト テキスト
=================================
このBOX自体に class="top_odai" とつけています。
これが30段程、同じものが繰り返されます。(タグやテキスト内容は変わります。画像は同じものです)
.top_odai内のリンクを探して、このBOX全体がリンクになるように設定しています。
マウスオーバー(hover)すると、「画像が少し大きくなる&タグが左にずれる」動作が起きるようにしました。
テキスト自体は、色が変わってシャドウが付きます。
この設定をjQueryで書いてみました。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
$(document).ready(function() {
var linkboxes = $('.top_odai');
for (var i=0; i<linkboxes.length; i++){
var readmores = $('div.title');
for (var j=0; j<readmores.length; j++){
$('.top_odai').click(function() {
var anchorTags = this.getElementsByTagName("a");
window.location = anchorTags[0].href;
});
}
}
});
$(function(){
$('.top_odai')
.each(function(){
$('.top_odai div.headwill img').css({'width':'20px','height':'20px'});
})
.hover(function(){
$(this).addClass('top_odai_hover');
$('div.title a').css({'color':'#FF3300','text-decoration':'none'});
$('.top_odai div.headwill img').stop().animate({'width':'30px','height':'30px','marginTop':'-5px'},'normal');
},
function(){
$(this).removeClass("top_odai_hover");
$('div.title a').css({'color':'#525252','text-decoration':'none'});
$('.top_odai div.headwill img').stop().animate({'width':'20px','height':'20px','marginTop':'0px'},'normal');
}
);
});
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
これで、記述はかなりスマートじゃないと思いますが、、、一応希望通りの動きはします。
ただこれでは全ての「class="top_odai"」に反応してしまいます。
1つのリンクに触れると、他の段の全てのBOXが同じく動いてしまいます。
下記は動作のテストページになります。
http://music333.oops.jp/test/test.html
これを1つのリンクに触れたら、そのBOX(.top_odai)だけ上記の動きを
させたいのですが、どのようにすれば良いのか、、、かなりハマっております。
各top_odaiに連番のidを割当て指定してみたりと色々試してみましたが全滅でした。
どのように書き換えたら、良いでしょうか?
アドバイス・ご教授どうぞ宜しくお願い致します。
お礼
ご教授ありがとうございます!!! $('div.title a', this)という形で各要素を指定しなおしたら 無事リンク1個1個で動作致しました。 imgや他要素もクラス設定なしでまとめて記載した所、こちらも問題なく動作しました。 今一度、セレクタの指定方法を勉強しなおします。 本当にありがとうございました!