javascript - 使用 javascript 获取 CSS Transitions 的 vendor 前缀有什么问题?

标签 javascript css cross-browser css-transitions

我不仅想检测转换支持,还想通过一次函数调用设置正确的前缀。这样做会有什么明显的问题吗?

function getTransitionPrefix() {
var el = document.getElementsByTagName("body")[0],
cssDec = (typeof window.getComputedStyle === "undefined") ?  {} : window.getComputedStyle(el,null),
transition = typeof cssDec.WebkitTransition !== "undefined" ? "Webkit" : 
typeof cssDec.MozTransition !== "undefined"  ? "Moz":
typeof cssDec.msTransition !== "undefined" ? "ms" :
typeof cssDec.OTransition !== "undefined" ? "O" : false;
return transition;
}

最佳答案

我没有看到任何错误,但我可能会这样做:

function getTransitionPrefix() {
    var el = document.createElement( "div" ),
        prefixes = ["Webkit", "Moz", "O", "ms"];
    for ( var i = 0; i < prefixes.length; i++ ) {
        if ( prefixes[i] + "Transition" in el.style ) {
            return prefixes[i];
        }
    }
    return "transition" in el.style ? "" : false;
}

然后设置过渡:

var setTransition = (function() {
    var pref = getTransitionPrefix();
    return function( elem, trans ) {
        if ( pref !== false ) {
            var s = pref === "" ? "transition" : pref + "Transition";
            elem.style[s] = trans;
        }
    };
})();

setTransition( element, "transition settings" );

关于javascript - 使用 javascript 获取 CSS Transitions 的 vendor 前缀有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8393385/

相关文章:

css - 表格布局 :fixed not working on Kendo grid

javascript - 监听表并在发生变化时调用函数

CSS3 : Reset alternate table row coloring after a certain class of tr

javascript - 单击时的过渡效果

javascript - 如何使用 CSS 样式将 HTML 表格打印或导出为 PDF,同时保持页面大小(与设备无关)?

javascript - jquery 点击 css zoom/-webkit-transform 后的位置

html - 处理子像素时​​ Chrome 线性渐变错误

html - 如何创建一个网页来捕获用户在手机和计算机中的摄像头?

javascript - 对单词使用 String.substring

javascript - 被发电机搞糊涂了