Css3 Webkit css动画:调整div矩形的大小

Fra*_*sco 7 javascript iphone jquery webkit css3

我试图了解是否可以animate使用webkit动画在Jquery中复制该方法

假设我有一个使用jquery的div 50px乘50 px,我可以使用以下命令轻松调整大小并为其设置动画:

$('#mybox').animate({'width':'100px','height':'70px'}, 300) 

// so from 50x50 it animates to 100x70 
// the values 100 and 70 should ba dynamically 
// input so i can create a function (Width,Height) to alter my box
Run Code Online (Sandbox Code Playgroud)

我想知道如何使用CSS WebKit动画如何做同样的事情

PS.我不需要它们在firefox中工作,只是Safari/Chrome的一个项目

Ars*_*eny 12

你可以使用这个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;
}
Run Code Online (Sandbox Code Playgroud)

然后你可以使用jQuery更新width和height属性:

$(document).ready(function() {
    $("div.mybox").css({"width": "100px", "height": "70px"});
});
Run Code Online (Sandbox Code Playgroud)

因此,如果浏览器支持它,这将是动画.但是,当然,请考虑将这些属性放到单独的类中,并将此类添加到元素中.您可以像这样使用.addClass()函数.

$(document).ready(function() {
    $("div.mybox").addClass("enlarged");
});
Run Code Online (Sandbox Code Playgroud)

或者,例如,您可以将它与toggleClass函数和click事件一起使用(单击时该框将被放大,再次单击时将更改为正常大小).

$(document).ready(function() {
    $("div.mybox").click(function() {
        $(this).toggleClass("enlarged");
    });
});
Run Code Online (Sandbox Code Playgroud)

在这种情况下,属性应该在CSS类中定义.

div.mybox.enlarged {
    width: 100px;
    height: 70px;
}
Run Code Online (Sandbox Code Playgroud)

此外,如果你想在鼠标悬停时发生动画,那么你需要添加的是:

div.mybox:hover {
    width: 100px;
    height: 70px;
}
Run Code Online (Sandbox Code Playgroud)

可以在不使用JS的情况下执行这种动画.

此外,您应该阅读CSS3转换属性和转换函数(它们在许多情况下都可以使用).它们在这里描述.


DaK*_*der 5

CSS3将使您非常轻松!它将添加一个过渡,您可以使用更改尺寸:hover。这是示例div:

<div id="mydiv">
    <!-- Div content goes here -->
</div>
Run Code Online (Sandbox Code Playgroud)

因此,您的div是“ mydiv”。其余的工作在CSS3中完成:

#mydiv {
    width: 50px;
    height: 50px;
    background: #f34543;
    -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;
}
#mydiv:hover {
    width: 100px;
    height: 70px;
}
Run Code Online (Sandbox Code Playgroud)

JSFiddle:http : //jsfiddle.net/dakoder/ZGHLM/

而已!它将尺寸从50x50px调整为100x70px。已在Chrome(而非Safari)上进行了测试。