バックグラウンド位置とプリペンドはうまく機能していますが、オーバーした要素の幅は次のルーチンで新しい幅を受け取りません。私は、正しいもの以外の構文のすべての置換を試したと思います!どんな理由であれ、Liの幅はこのように変更できませんか?このスニペットでホバー状態で幅が変更されないのはなぜですか
私はちょうどcss( 'width'、 '128)でcssを設定しようとしましたが、それはうまくいきませんでした...アニメーションを使って何かを考えていると問題が起こっていました。
$(document).ready(function() {
initwidth = $("li").width(); // updated
// hover in
$(".qnav li").hover(
function(){
// start the animation
$(this).stop().animate({width: "128"},{queue:false, duration:"fast" });
$(this).stop().animate({backgroundPosition: "0 -30px"},{queue:false, duration:"fast" });
$(this).prepend('<span class="prepended">Question </span');
// hover out
},function(){
$(this).stop().animate({width: initwidth});
$(this).stop().animate({backgroundPosition: "0 0"},{queue:false, duration:"fast" });
$(".prepended").remove();
}
);
});
要素のCSSは次のとおりです。
.qnav li{
display: block;
float: left;
height: 30px;
line-height: 2;
width:38px;
padding: 0;
background:#aaa9a9 url(images/arrowSprite.png) no-repeat 0 0;
}
答えはありませんが、initwidth = $( "li")。 var initwidth = $( "li")。 –
必須かどうかわかりませんが、「px」を追加しようとしましたか?同様に: 'width:" 128px "' – powerbuoy
jsfiddleまたはjsbinを開いてください –