0
お願いします。私はメニュー 'li.menu_item'にカーソルを置いて、 'img'を選択したい:$( 'li.menu_item a')。children( 'img')...しかし、これは動かない...あなたは<a>
タグにネストされ<div>
タグを持っているように見えることを除いてからimgを選択
$('li.menu_item a').hover(
function() {
$(this).find('.img_mask').stop().animate({ "opacity" : .8 });
},
function() {
$(this).find('.img_mask').stop().animate({ "opacity" : .0 });
}
);
:私はそれが
<ul class="menu">
<li class="menu_item"><a class="selected" href="#"> domů </a></li>
<li class="menu_item"><a href="#">
<div>
<img class="img_mask" src="design/btndark.png" />
</div>
<div class="menu_mask">fotografie</div>
</a></li>
<li class="menu_item"><a class="nonselect" href="#">
<div>
<img class="img_mask" src="design/btndark.png" />
</div>
<div class="menu_mask">
rezervace
</div>
</a></li>
<li class="menu_item"><a class="nonselect" href="#">
<div>
<img class="img_mask" src="design/btndark.png" />
</div>
<div class="menu_mask">
konetakt
</div>
</a></li>
<li class="cl"></li>
</ul>
<script type="text/javascript">
$(function() {
$('.img_mask').animate({
"opacity" : .0
});
$('li.menu_item a').hover(
// problem je jeste v tom, ze pokud rychle prejizdim pres prvky, tak se "dopredu najedou" a kdyz jsem uz mimo obrazek, jeste blikaji...
// tento problem lze vyresit tim, ze zkontruluju jestli bylo animovano
// takze reknu funkci hover, ze nejprve ma zastavit a az pak animovat
function() {
$('.img_mask').stop().animate({ "opacity" : .8 });
},
function() {
$('.img_mask').stop().animate({ "opacity" : .0 });
}
);
});
</script>
'img'は' div'の中にラップされているので、 '.children()'はそれを見つけられません。 '.find()'を使う方が良いです。 –
不透明度を手動でアニメーション化するのではなく、 'fadeTo()'も使用します。 – jondavidjohn
@Gaby:そうです。修正する... – user113716