Modernizr提供了一种testAllProps()
方法,可方便地测试给定的所有供应商前缀样式,以查看当前运行的浏览器是否支持该样式。
但是我没有达到我需要实际从javascript分配这些属性的程度,因为各种原因归结为有条件地链接CSS文件过于繁琐。
例如,我可以构建一个数组和一个例程,将每个供应商特定的样式分配给我的目标元素的样式:
['mozTransitionDuration', 'webkitTransitionDuration', 'oTransitionDuration', 'msTransitionDuration', 'transitionDuration'].map(function(s){ element.style.s = "style_setting"; });
好吧,这可能会产生一堆错误,因为我会尝试将“style_setting”分配给4或5个未定义的值。
有没有人知道什么才能减轻痛苦?
答案 0 :(得分:2)
可能最好使用一个了解这些内容的现有库:
Prefix Free将允许您从CSS分配样式而无需供应商前缀。还有一个jQuery Plugin,它允许您从JavaScript中执行相同操作。
答案 1 :(得分:2)
在设置值之前,请检查属性是否为undefined
:
['mozTransitionDuration', 'webkitTransitionDuration', 'oTransitionDuration', 'msTransitionDuration', 'transitionDuration']
.map(function(s) {
if (element.style[s] != undefined) element.style[s] = "style_setting";
});