1

jQuery.camelCase用于将虚线 CSS 属性转换为驼峰式 CSSOM(?或 DOM?)属性。

我想做相反的事情来动态创建 CSS 过渡值。

我不想为此使用all关键字。我想让不强制编码器只使用background-color而不是backgroundColor.

这是可能的(可能通过 jQuery)还是需要大量代码来支持跨浏览器?

编辑:

$("#example").css("transition-property", "backgroundColor") // Fail

我不想做与我的示例完全相同的操作,但这说明了问题所在。

我正在尝试遍历包含 css 属性和值的对象,以将对象键设置为转换属性。例如{ backgroundColor: "red" }应该设置background-colortransition-property而不是backgroundColor

4

2 回答 2

5

完成这项工作的一个简单功能是:

function deCase(s) {
    return s.replace(/[A-Z]/g, function(a) {return '-' + a.toLowerCase()});
}

alert(deCase('scrollbarDarkShadowColor')); // scrollbar-dark-shadow-color

可能还有很多其他方法。

此外,您可以使用以下方法进行 camelCase:

function camelCase(s) {
    return s.replace(/-(.)/g, function(a, $1){return $1.toUpperCase();});
}
于 2013-05-19T23:52:19.437 回答
1

我从jQuery.transit.js找到了一个解决方案:

function uncamel(str) {
    return str.replace(/([A-Z])/g, function(letter) { return '-' + letter.toLowerCase(); });
}

欢迎任何更好(更多记录/测试)的解决方案!

于 2013-05-19T23:55:43.490 回答