为了账号安全,请及时绑定邮箱和手机立即绑定

Animate元素变换旋转

Animate元素变换旋转

繁花不似锦 2019-07-30 16:07:20
Animate元素变换旋转如何使用jQuery旋转元素.animate()?我正在使用下面的行,它正在正确地设置不透明度,但这是否支持CSS3转换?$(element).animate({    opacity: 0.25,    MozTransform: 'rotate(-' + -amount + 'deg)',    transform: 'rotate(' + -amount + 'deg)'});
查看完整描述

3 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

我在元素中有文字。为了将文本与其他所有内容一起旋转,我使用了border-spacing属性而不是text-indent。

另外,为了澄清一下,在元素的样式中,设置初始值:

#foo {
    border-spacing: 0px;}

然后在动画块中,你的最终值:

$('#foo').animate({  borderSpacing: -90 }, {
    step: function(now,fx) {
      $(this).css('transform','rotate('+now+'deg)');  
    },
    duration:'slow'},'linear');

在我的情况下,它逆时针旋转90度。


查看完整回答
反对 回复 2019-07-30
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

在我看来,animate与CSS3相比,jQuery 有点过度使用transition,后者在任何2D或3D属性上执行此类动画。另外,我担心,将它留给浏览器并忘记名为JavaScript的图层可能会导致CPU备用 - 特别是当您希望使用动画进行爆破时。因此,我喜欢使用样式定义的动画,因为您使用JavaScript定义了功能。您注入JavaScript的演示文稿越多,您稍后将面临的问题就越多。

您所要做的就是使用addClass要设置动画的元素,您可以在其中设置具有CSS transition属性的类。您只需“激活”动画,该动画将保留在纯表示层上

.js文件

// with jQuery$("#element").addClass("Animate");// without jQuery librarydocument.getElementById("element").className += "Animate";

可以使用jQuery轻松删除类,或者删除没有库的类。

的CSS

#element{
    color      : white;}#element.Animate{
    transition        : .4s linear;
    color             : red;
    /** 
     * Not that ugly as the JavaScript approach.
     * Easy to maintain, the most portable solution.
     */
    -webkit-transform : rotate(90deg);}

html的

<span id="element">
    Text</span>

对于大多数用例,这是一种快速方便的解决方案。

当我想实现不同的样式(替代CSS属性)时,我也使用它,并希望使用全局.5s动画即时更改样式。我添加了一个新类BODY,同时在这样的形式中使用替代CSS:

.js文件

$("BODY").addClass("Alternative");

的CSS

BODY.Alternative #element{
    color      : blue;
    transition : .5s linear;}

这样,您可以在动画中应用不同的样式,而无需加载不同的CSS文件。您只需要JavaScript来设置class


查看完整回答
反对 回复 2019-07-30
  • 3 回答
  • 0 关注
  • 1569 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信