Quiero animar un div haciendo primero su borde más grueso por 5px en mouseenter, luego disminuyendo el borde por 5px en mouseleave, la parte difícil es que no quiero que el div se vea como se está moviendo (si solo se animan los bordes, todo el div se verá como se desplaza, no solo el borde cada vez más grueso/delgado). Estoy muy cerca, pero estoy atascado en la última parte: mouseleave. Lo que tengo hasta ahora es:JQuery borde animado sin mover 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);
}
});
puse la frontera para ser 20 píxeles en algún lugar antes de esto, y el margen no está definida, por lo que es 0px. El div se anima muy bien en mouseenter, puedo hacer que el borde sea más grueso sin que el div se mueva fuera de lugar, pero cuando se desencadena el mouseleave, el div primero se reubicará a la posición como si el "margen -5px" nunca se llamara , y luego disminuir su borde lentamente y parece que el "magin: '0px'" no se está llamando realmente.
No estoy seguro si mi descripción tiene sentido, puedo poner un prototipo si es necesario.
No puedo conseguir un violín para que eso funcione en absoluto; simplemente se vuelve loco :-( – Pointy
Encontré la respuesta, aún no podemos animar los valores de taquigrafía en JQuery, por lo que el margen debe ser marginTop, marginRight, marginBottom y marginLeft. Publicaré mi propia respuesta cuando puedo. – vinceh
Sí eso lo hace :-) http://jsfiddle.net/25EsV/ – Pointy