你可以使用这个 CSS:
div.mybox {
width: 50px;
height: 50px;
background-color: red;
-webkit-transition:width 300ms ease-in-out, height 300ms ease-in-out;
-moz-transition:width 300ms ease-in-out, height 300ms ease-in-out;
-o-transition:width 300ms ease-in-out, height 300ms ease-in-out;
transition:width 300ms ease-in-out, height 300ms ease-in-out;
}
然后您可以使用 jQuery 更新宽度和高度属性:
$(document).ready(function() {
$("div.mybox").css({"width": "100px", "height": "70px"});
});
因此,如果浏览器支持它,这将是动画的。但是,当然,考虑将这些属性放到一个单独的类中,并将这个类添加到元素中。您可以像这样使用 .addClass() 函数。
$(document).ready(function() {
$("div.mybox").addClass("enlarged");
});
或者,例如,您可以将它与 toggleClass 函数和单击事件一起使用(单击时框会放大,再次单击时会变为正常大小)。
$(document).ready(function() {
$("div.mybox").click(function() {
$(this).toggleClass("enlarged");
});
});
在这种情况下,属性应该在 CSS 类中定义。
div.mybox.enlarged {
width: 100px;
height: 70px;
}
此外,如果您希望动画在鼠标悬停时发生,那么您只需添加以下内容:
div.mybox:hover {
width: 100px;
height: 70px;
}
这种动画可以完全不使用 JS 来执行。
此外,您应该阅读有关CSS3 过渡属性和转换函数的信息(它们可以在许多情况下使用)。它们在此处进行了描述。