Firefox 上的 jQuery 动画缩放

Posted

技术标签:

【中文标题】Firefox 上的 jQuery 动画缩放【英文标题】:jQuery animated zoom on firefox 【发布时间】:2011-07-17 08:15:23 【问题描述】:

我有一个很好的效果,你将鼠标悬停在一个特定的元素上,它会放大。我这样做很简单:

$('#element_to_scale').live('mouseenter', function() 
    $(this).stop().animate(zoom: 2);
).live('mouseleave', function() 
    $(this).stop().animate(zoom: 1);
);

问题是这在 firefox 上不起作用 :(。我现在读到 firefox 是唯一不支持 css 缩放的浏览器?看起来很奇怪......那么使用 jQuery 动画缩放机制的最佳方法是什么上面?

【问题讨论】:

CSS3 转换应该对您有所帮助。 @bazmegakapa,我可以用 jQuery 轻松地为 css3 转换制作动画吗? AFAIK 没有,但有一个轻量级插件:github.com/lrbabe/jquery.transform.js 根据这些信息创建了一个答案。 【参考方案1】:

你可以使用CSS3 transforms,点赞

-moz-transform: scale(2); 
-webkit-transform: scale(2);
-o-transform: scale(2);

,但目前您无法使用基本的 jQuery 为它们设置动画。

但是,您可以为此使用 jQuery 插件,例如 jquery.transform.js。

请注意,IE9 也支持transform 属性,我在this SO question 中找到了一些相关信息。

【讨论】:

【参考方案2】:

您可以在您的 css 中按比例使用 css 转换。

#element_to_scale 
    -moz-transition: transform 0.5s linear 0s;

#element_to_scale:hover 
    -moz-transform: scale(2);

【讨论】:

嗯,这绝对有效,但不是动画。它只是立即弹出。我想我必须用 setInterval 实现我自己的动画机制? 只是阅读一些 Firefox 文档,看起来转换 0.5s 应该对此进行动画处理,但仅适用于 Firefox 4.0,而我有 3.6。 FF4 将于下周发布 ;)。我认为您应该使用 Modernizr 之类的东西检测“转换”和“转换”规则支持,并在不完全支持时使用 jQuery。 缩放是 CSS 标准的一部分吗? ff4 现在支持缩放吗?如果不是,我应该用什么标准方式来处理跨浏览器的缩放? 这并不完全接近 OP 的要求。它甚至不兼容跨浏览器。

以上是关于Firefox 上的 jQuery 动画缩放的主要内容,如果未能解决你的问题,请参考以下文章

css - Firefox 上的 div 位置不正确

IE 上的 Jquery Animate 出错

jquery之全屏滚动插件fullPage.js

一起记录 Firefox/jQuery/CSS 动画的错误?

jQuery 动画在 Firefox 中断断续续

jQuery 动画位置在 Firefox 中固定不准确