jQueryUI がインストールされている場合は、期間を追加してクラスをフェードアニメーション化できます。
$(this).toggleClass('next', 500);
http://jqueryui.com/demos/toggleClass/
しかし、私の知る限り、背景画像のみに影響する個別の不透明度設定はありません。したがって、それをフェードインしたい場合は、要素全体をフェードする必要がありますが、これはあなたが述べたように、あなたが望むものではありません.
本当に効果が必要な場合は、別の要素をクラスに与えた要素の前に追加し、その要素を (背景画像と共に) フェードインすることもできます。
要素はabsolute
、残りのコンテンツに影響を与えないように配置する必要があります。
次のような結果になります。
CSS:
li {
position: relative;
}
.background {
width: 100%;
height: 100%;
background:orange; // This would be your background image instead
position: absolute;
top: 0;
left: 0;
}
.content {
position: relative;
}
HTML:
<ul id='gallery'>
<li>
<div class='background'></div> // Prepend and fade in
<div class='content'>hi there</div>
</li>
</ul>
jQuery:
hover()
2 つの関数を取ります。1 つはあなたmouseenter
のとき、もう 1 つはあなたのときですmouseleave
。
// すべての .background 要素の不透明度を 0 に設定 $('.background').css({opacity: 0});
var gallery = $('ul#gallery').children();
gallery.filter(':even').not(':last').hover(
function () {
$(this).find('.background').animate({'opacity': 1}, 500);
},
function () {
$(this).find('.background').animate({'opacity': 0}, 500);
});
編集:
参考までに、セレクターを変更して、 を呼び出さなくてもすぐに必要なものを取得できます.filter()
。
var gallery = $('ul#gallery li:even:not(:last)');
gallery.hover(...
編集:
最初の文の文言を変更し、ドキュメントへのリンクを追加しました。