JQuery动画边框没有移动div

前端之家收集整理的这篇文章主要介绍了JQuery动画边框没有移动div前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想通过首先使鼠标的边框变厚5px,然后将鼠标左边的边框减少5px,棘手的部分是我不希望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动画在鼠标器上很好,我可以使边框更粗,而不会使div实际移动,但是当鼠标被触发时,div将首先重新定位到该位置,就像“margin -5px”从未被调用,然后缓慢降低它的边界,看起来像“magin:’0px’”实际上没有被调用.

我不知道我的描述是否有意义,如果需要,我可以提出一个原型.

解决方法

我没有阅读整个代码,但我认为有更好的方法来做你想要的.

这是“大纲”的CSS属性.

正如规范所说:“…不影响箱子的位置或尺寸… …不会引起回流或溢流…”

http://www.w3.org/TR/CSS21/ui.html#dynamic-outlines

代码将是这样的:

jQuery(#thumbdiv<%=s.id.to_s%>").mouseenter( function() {
jQuery(this).css("outlineStyle","solid").animate({
    'outlineWidth': '5px'
},500);
}).mouSEOut( function() {
jQuery(this).animate({
    'outlineWidth': '0px'
},500).css("outlineStyle","solid");
});

注意:

好的,我编辑了@Nabab“小提琴”(我不知道那个服务),我得到这个:http://jsfiddle.net/EbTms/ …我认为它的作品.

猜你在找的jQuery相关文章