<分区>
标签 javascript firefox css
<分区>
Possible Duplicate:
How to set CSS3 transition using javascript?
我尝试通过元素的 style
对象将 CSS3 transition css 属性添加到具有( native )JavaScript 的元素,它在 Firefox 中不起作用,但在 webkit 中一切正常
浏览器。我的代码:
var actor_object = document.querySelectorAll("p");
actor_object.style["-moz-transition-property"] = "all"
请不要回答说我可以使用 MozTransitionProperty
来做到这一点,我知道这一点,但我需要使用 -moz-
。
最佳答案
transition-property
CSS 属性;对于跨浏览器解决方案,使用 jQuery就这么简单:
$('p').css({transitionProperty: "all", transitionDuration: '2s'});
如果您想要一个纯 JS 解决方案,这里是用于测试支持的 CSS 属性的代码,来自 $.cssHooks
:
function styleSupport(prop) {
var vendorProp, supportedProp,
// capitalize first character of the prop to test vendor prefix
capProp = prop.charAt(0).toUpperCase() + prop.slice(1),
prefixes = ["Moz", "Webkit", "O", "ms"],
div = document.createElement("div");
if (prop in div.style) {
// browser supports standard CSS property name
supportedProp = prop;
} else {
// otherwise test support for vendor-prefixed property names
for (var i = 0; i < prefixes.length; i++) {
vendorProp = prefixes[i] + capProp;
if (vendorProp in div.style) {
supportedProp = vendorProp;
break;
}
}
}
// avoid memory leak in IE
div = null;
// add property to $.support so it can be accessed elsewhere
//$.support[prop] = supportedProp;
return supportedProp;
}
然后就这样使用它:
(function() {
var transitionProperty = styleSupport("transitionProperty");
var transitionDuration = styleSupport("transitionDuration");
var actor_object = document.querySelectorAll("p");
for (var i = 0, l = actor_object.length; i < l; i++) {
actor_object[i].style[transitionProperty] = "all";
actor_object[i].style[transitionDuration] = "2s";
}
}());
关于javascript - 为什么 Firefox 不接受 -moz-transition 样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13278390/