10

好的,所以你们中的大多数人都会熟悉 CSS3 过渡,我更喜欢它而不是 jQuery 动画,因为它具有 CSS 的简单性。我唯一的遗憾是它不适用于 IE < 9(一如既往)以及 Firefox < 4、Safari < 4 等。我并不是说只为 IE 用 Ja​​vaScript 编写单独的动画。但是我想要一个解决方案,它可以扫描 CSS,获取动画的速度,必须为哪些属性设置动画,并为它们设置动画(使用 jQuery 或其他东西),如果有这样的解决方案,它是什么,在哪里可以我得到它?

4

4 回答 4

7

只要您事先知道需要嗅探哪些浏览器供应商前缀,就可以检测到受支持的 CSS 属性。我已经为该机制写了一个要点:

https://gist.github.com/1096784

cssSandpaper 是一个 JS 库,旨在解析 CSS 并为各种 CSS3 效果动态实现 polyfill:

http://www.useragentman.com/blog/csssandpaper-a-css3-javascript-library/

还有一个 jQuery 库,它以相反的顺序运行,并在您调用 $.animate() 时尽可能静默地实现转换:

https://github.com/louisremi/jquery.transition.js

于 2012-01-04T13:14:04.097 回答
5

遗憾的是,大多数浏览器在渲染页面时会丢弃任何不受支持的 CSS 声明,这意味着如果浏览器不支持给定的 CSS 功能,您将无法查看元素的style属性并查看该功能的样式表条目,即使它在您的 CSS 文件中。

IE 是个例外,这就是为什么像 CSS3Pie 这样的 polyfill 能够工作的原因,但我不相信任何其他浏览器都能让您看到它们已删除的 CSS 声明,因此 JavaScript 解决方案也需要重新将 CSS 文件本身加载为纯文本,然后重新解析它,甚至在它开始实际实现该功能之前。

这样做的含义是,您所要求的内容可能对浏览器来说太重了,不值得付出努力(特别是因为我们谈论的是较旧的版本,反正速度较慢)。

一年多以前,关于 SO的这个问题问的问题几乎相同。那时没有答案,我认为现在还没有。

但是,在答案中提到了一个 JQuery 插件,它可以满足您的需求,但反过来(即您需要在所有浏览器中将其作为脚本运行,但它使用脚本中的 CSS 功能(如果可用))。我想这是你最接近的。

于 2011-08-07T20:14:35.743 回答
0

试试 eCSStender:http ://ecsstender.org/extensions/css3-transitions/index.html 我们用它来做一个相对简单的显示/隐藏元素。

于 2013-11-03T21:54:38.483 回答
0

jQueryUI的addClass/removeClass 方法(不是常规的!)可以为类的属性设置动画。

var transitionOptions = Modernizr["css3transitions"] ? null : { queue: false, duration: 200, children: false };

$(".selector").addClass("someclass", transitionOptions);
于 2015-10-26T09:27:53.157 回答