私はul
メニューを持っています:
<ul>
<li class="one"><a href="#">Link One</a></li>
<li class="two"><a href="#">And Two</a></li>
<li class="three"><a href="#">Then it's Three</a></li>
<li class="four"><a href="#">Finally Four</a></li>
<ul>
アンカーの上にカーソルを合わせると、背景が左からスライドインし、マウスを離すと元に戻りますが、テキストの位置は静的なままです。おそらく背景画像を使ってこの作業を簡単に行うことができますが、 の幅li
を 0 に設定し、a
をいくつかの設定幅に設定してから、とjQuery
の親の幅をアニメーション化することでできると思いli
ました。mouseover
mouseout
$('a').mouseover(function(){
$(this).parent().stop().animate({
width: 270
}, 200);
});
$('a').mouseout(function(){
$(this).parent().stop().animate({
width: 0
}, 200);
});
幅を設定するか、css を介して設定すると、正常に動作しますが、実際にはスライドが奇妙な結果を引き起こします: http://jsfiddle.net/LeonardChallis/D67dM/
私の質問は次のとおりです。これを適切に機能させるには何を変更する必要がありますか、またはそれを完全に行うためのより良い方法はありますか? 私は必ずしも背景画像の方法を気にしているわけではありませんが、それがなぜ最善なのか、および/または他の方法がなぜ悪いのかを教えていただければ幸いです。