jqueryのロールオーバーについて
jqueryのロールオーバー設定に関してご質問です。
あるサイトのコーディングを行ってます。
サイト内のナビーゲーションボタンを瓶の画像でまとめてます。
各瓶の画像にリンクを付け、
マウスを乗せるとその瓶が開いた画像が
切り替わりでフェードインの感じで出てくるという設定を目指しているのですが、
うまくいきません。
色々やった結果マウスを当てると、
切り替わりで空いた瓶がフェードで出るのですが、
その画像奥に閉じた瓶がそのまま残ってて重なってる感じです。
こちらはどのようにすれば上手く画像奥の瓶は消えるのでしょうか?
ちなみに画像はpngです。
フェードの切り替わりは是非そのまま使用したいと考えてます。
あとマウスを外せばまた閉じた瓶がフェードで出るという感じを目指してます。
どなたかご教示いただいてもよろしいでしょうか?
一応下記htmlとjsコードも載せておきます。
▼html
<script src="../lib/jquery1.8.1.min.js"></script>
<script src="../js/jquery.tgImageRollover.js"></script>
<script type="text/javascript">
jQuery(function(){
$(this).tgImageRollover({
selector : 'img.rollover', // セレクタ ←(7)
attach : '_on', // ファイル名末尾句 ←(8)
onFadeTime : 600, // カーソルON時のアニメーション時間 ←(9)
offFadeTime : 400 // カーソルOFF時のアニメーション時間 ←(10)
});
});
</script>
<a href="#"><img class="rollover" src="../img/nav01.png" alt="" width="100" height="50"></a>
<a href="#"><img class="rollover" src="../img/nav02.png" alt="" width="100" height="50"></a>
▼jquery.tgImageRollover.js
;(function($){
$.fn.tgImageRollover = function(options){
var opts = $.extend({}, $.fn.tgImageRollover.defaults, options);
$(opts.selector).each(
function(){
this.onImage = $(this).attr('src').replace(/^(.+)(\.[a-z]+)$/,"$1"+ opts.attach +"$2");
this.onHtml = $('<img src="'+this.onImage+'" alt="" style="position:absolute; opacity:0;">');
$(this).before(this.onHtml);
$(this.onHtml).hover(
function(){
$(this).stop().animate({'opacity': '1'}, opts.onFadeTime);
},
function(){
$(this).stop().animate({'opacity': '0'}, opts.offFadeTime);
}
)
}
)
}
// default option
$.fn.tgImageRollover.defaults = {
selector : 'img.rollover',
attach : '_on',
onFadeTime : 600,
offFadeTime : 400,
};
})(jQuery);
お礼
ご回答ありがとうございました。 自分なりに調べた結果、出す方法を見つけましたので、 ここに記しておきます。 もし同じ問題にぶつかった人にの一助になれれば光栄です。 <HTML側> <div class="botan"> <a href="test.html"> <img src="img/botan.jpg" alt="テキスト" /> </a> </div> </div> <CSS側> .botan { width:131px; height:21px; float:right; margin:5px 70px 0px 0px; _margin:5px 35px 0px 0px;} .botan a{ width:131px; height:21px; display:block; } .botan a:hover{ width:131px; height:21px; display:block; background:url(../img/botanro.jpg) no-repeat;} .botan a:hover img{ visibility:hidden; /*これが重要でした!*/ } これなら、一応IMGをHTML側に貼りますが、 altが出ます。 ロールオーバーした後もaltが出るので、 だいぶ便利かと思います。