首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery动画a -webkit-transform

jQuery动画a -webkit-transform
EN

Stack Overflow用户
提问于 2013-06-06 17:47:06
回答 3查看 30.3K关注 0票数 8

是否可以使用jQuery来制作webkit translate3d的动画?

我读到在使用jQuery的animate属性时,您必须对css属性使用驼峰大小写,但在translate3d的情况下,这似乎不起作用。

我有以下代码,我想要动画,而不是它只是立即发生?

代码语言:javascript
复制
$("#main-nav").css('-webkit-transform', "translate3d(0px, " + e + "px, 0px) scale(1)");

为了清楚起见,"e“是一个传递给函数的变量,我上面的代码就是从这个函数运行的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-06 17:56:55

使用text-indent,它就会正常工作。示例:

代码语言:javascript
复制
$(".test").animate({ textIndent: 100 }, {
    step: function(now,fx) {
        $(this).css('-webkit-transform',"translate3d(0px, " + now + "px, 0px)");
    },
    duration:'slow'
},'linear');

此外,您还可以从-webkit-transform中删除scale(1)

为了避免更改有用的属性,您可以在那里提供任何属性。如下图所示:

代码语言:javascript
复制
$(".test").animate({ whyNotToUseANonExistingProperty: 100 }, {
    step: function(now,fx) {
        $(this).css('-webkit-transform',"translate3d(0px, " + now + "px, 0px)");
    },
    duration:'slow'
},'linear');

因为我是火狐的粉丝,所以请添加这行代码来实现火狐兼容性,就像一样

代码语言:javascript
复制
$(this).css('-moz-transform',"translate3d(0px, " + now + "px, 0px)");
票数 21
EN

Stack Overflow用户

发布于 2013-06-06 17:54:32

我认为您可能正在尝试使jQuery本身不支持的属性具有动画效果,您最好的选择可能是使用这样的插件:http://ricostacruz.com/jquery.transit/

您可以使用如下所示的.transition,而不是使用.animate函数:

代码语言:javascript
复制
$("#main-nav").transition({ "-webkit-transform": "translate3d(0px, " + e + "px, 0px) scale(1)" });
票数 5
EN

Stack Overflow用户

发布于 2014-10-07 01:59:12

为此,我设置了一个任意值的动画,然后使用step回调来应用一些我已经编写到一个简单方法中的CSS。也许一些专家可以认同这是好是坏,但它对我来说是有效的,不会强迫我安装任何额外的插件。下面是一个例子。

在本例中,我应用了一个100px的变换,然后使用jQuery .animate()方法将其减少到0。

代码语言:javascript
复制
var $elem
  , applyEffect
  ;

$elem = $('.some_elements');

applyEffect = function ($e, v) {
  $e.css({
    '-webkit-transform': 'translate3d(0px, ' +String(v)+ 'px, 0px)'
  , '-moz-transform': 'translate3d(0px, ' +String(v)+ 'px, 0px)'
  , 'transform': 'translate3d(0px, ' +String(v)+ 'px, 0px)'
  });
};

applyEffect($elem, 100);

$elem.animate({
  foo: 100
}, {
  duration: 1000
, step: function (v) {
    applyEffect($elem, 100 - v);
  }
}
);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16958873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档