资讯专栏INFORMATION COLUMN

如何检测css特性

jsliang / 2442人阅读

摘要:如何检测特性如果我们要检测一个属性是否支持支持属性不支持属性如果我们要检测该属性是否支持某值支持该属性值浏览器不支持该属性值如何动态赋值一个效果,并支持所有主流浏览器资料揭秘

如何检测css特性

如果我们要检测一个css属性是否支持

var dom = document.createElement("p");
if ("textShadow" in dom.style) {
    alert("支持textShadow属性")
}
else {
    alert("不支持textShadow属性")
}

如果我们要检测该css3属性是否支持某值

var dom = document.createElement("p");

dom.style.backgroundImage = "linear-gradient(red, tan)";

if (dom.style.backgroundImage) {
    alert("支持该属性值");
}

else {
    alert("浏览器不支持该属性值")
}

如何动态赋值一个css3效果,并支持所有主流浏览器

function iSlider() {};

/**
 * @returns {String}
 * @private
 */
iSlider.TRANSITION_END_EVENT = null;

iSlider.BROWSER_PREFIX = null;

(function () {
    var e = document.createElement("fakeElement");
    [
        ["WebkitTransition", "webkitTransitionEnd", "webkit"],
        ["transition", "transitionend", null],
        ["MozTransition", "transitionend", "moz"],
        ["OTransition", "oTransitionEnd", "o"]
    ].some(function (t) {
        if (e.style[t[0]] !== undefined) {
            iSlider.TRANSITION_END_EVENT = t[1];
            iSlider.BROWSER_PREFIX = t[2];
            return true;
        }
    });
})();

/**
 * @param {String} prop
 * @param {String} value
 * @returns {String}
 * @public
 */
iSlider.styleProp = function (prop, isDP) {
    if (iSlider.BROWSER_PREFIX) {
        if (!!isDP) {
            return iSlider.BROWSER_PREFIX + IU(prop);
        } else {
            return "-" + iSlider.BROWSER_PREFIX + "-" + prop;
        }
    } else {
        return prop;
    }
};

/**
 * @param {String} prop
 * @param {HTMLElement} dom
 * @param {String} value
 * @public
 */
iSlider.setStyle = function (dom, prop, value) {
    dom.style[iSlider.styleProp(prop, 1)] = value;
};

/**
 * @type {Object}
 *
 * @param {HTMLElement} dom The wrapper 
  • element * @param {String} axis Animate direction * @param {Number} scale Outer wrapper * @param {Number} i Wrapper"s index * @param {Number} offset Move distance * @protected */ iSlider._animateFuncs = { normal: (function () { function normal(dom, axis, scale, i, offset) { iSlider.setStyle(dom, "transform", "translateZ(0) translate" + axis + "(" + (offset + scale * (i - 1)) + "px)"); } normal.effect = iSlider.styleProp("transform"); return normal; })() };
  • 资料

    css揭秘

    iSlider line 250

    文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

    转载请注明本文地址:https://www.ucloud.cn/yun/81462.html

    相关文章

    • 如何检测css特性

      摘要:如何检测特性如果我们要检测一个属性是否支持支持属性不支持属性如果我们要检测该属性是否支持某值支持该属性值浏览器不支持该属性值如何动态赋值一个效果,并支持所有主流浏览器资料揭秘 如何检测css特性 如果我们要检测一个css属性是否支持 var dom = document.createElement(p); if (textShadow in dom.style) { alert...

      izhuhaodev 评论0 收藏0
    • 前端兼容性探讨

      摘要:个人认为兼容性的问题也是对这三个方面进行处理。能力检测需要注意两点先检测达成目的的最常用的特性,可以保证代码最优化,并避免检测多个条件必须测试实际要是用到的特性这些就是小可对兼容性的理解,有不对的希望各位朋友指正探讨,嘻嘻 这里和朋友们简单探讨一下个人对于前端兼容性的一些理解: 在项目中,前端主要处理html,css,javaScript代码,当然还有可能接触到razor等渲染引擎方面...

      MobService 评论0 收藏0
    • 前端兼容性探讨

      摘要:个人认为兼容性的问题也是对这三个方面进行处理。能力检测需要注意两点先检测达成目的的最常用的特性,可以保证代码最优化,并避免检测多个条件必须测试实际要是用到的特性这些就是小可对兼容性的理解,有不对的希望各位朋友指正探讨,嘻嘻 这里和朋友们简单探讨一下个人对于前端兼容性的一些理解: 在项目中,前端主要处理html,css,javaScript代码,当然还有可能接触到razor等渲染引擎方面...

      Andrman 评论0 收藏0
    • 前端兼容性探讨

      摘要:个人认为兼容性的问题也是对这三个方面进行处理。能力检测需要注意两点先检测达成目的的最常用的特性,可以保证代码最优化,并避免检测多个条件必须测试实际要是用到的特性这些就是小可对兼容性的理解,有不对的希望各位朋友指正探讨,嘻嘻 这里和朋友们简单探讨一下个人对于前端兼容性的一些理解: 在项目中,前端主要处理html,css,javaScript代码,当然还有可能接触到razor等渲染引擎方面...

      developerworks 评论0 收藏0

    发表评论

    0条评论

    最新活动
    阅读需要支付1元查看
    <