我想通过首先在 mouseenter 上使其边框加厚 5px,然后在 mouseleave 上将边框减小 5px 来为 div 设置动画,棘手的部分是我不希望 div 看起来像在移动(如果你只是为边框设置动画,整个 div 看起来会发生变化,而不仅仅是边框变厚/变薄)。我非常接近,但我被困在最后一部分:mouseleave。到目前为止,我所拥有的是:
$("#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'”。
我不确定我的描述是否有意义,如果需要,我可以制作一个原型。