最初にmouseenterで境界線を5px太くし、次にmouseleaveで境界線を5px小さくして、divをアニメーション化したいのですが、トリッキーな部分は、divが動いているように見せたくないということです(境界線をアニメーション化するだけの場合) 、境界線が太くなったり細くなったりするだけでなく、div全体がシフトしているように見えます)。私は非常に近いですが、最後の部分であるマウスリーブで立ち往生しています。私がこれまでに持っているのは:
$("#thumbdiv<%=s.id.to_s%>").bind({
mouseenter: function(){
$(this).animate({
borderRightWidth: "25px",
borderTopWidth: "25px",
borderLeftWidth: "25px",
borderBottomWidth: "25px",
margin: "-5px"
}, 500);
},
mouseleave: function(){
$(this).animate({
borderRightWidth: "20px",
borderTopWidth: "20px",
borderLeftWidth: "20px",
borderBottomWidth: "20px",
margin: "0px"
}, 500);
}
});
この前のどこかで境界線を20pxに設定しましたが、マージンが設定されていないため、0pxになります。divはmouseenterでうまくアニメーション化され、divが実際にずれることなく境界線を太くすることができますが、mouseleaveがトリガーされると、divは最初に「margin-5px」が呼び出されなかったかのように自分自身をその位置に再配置します、次に境界線をゆっくりと減らします。「magin:'0px'」は実際には呼び出されていないようです。
私の説明が理にかなっているかどうかはわかりませんが、必要に応じてプロトタイプを作成できます。