How to detect css properties

高洛峰
Release: 2017-02-13 14:17:53
Original
1834 people have browsed it

How to detect css features

If we want to detect whether a css attribute supports

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

If we want to detect whether the css3 attribute supports a certain value

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

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

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

else {
    alert('浏览器不支持该属性值')
}
Copy after login
Copy after login

How to dynamically assign values A css3 effect and supports all major browsers

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;     })() };
  • Copy after login
    Copy after login

    Information

    css secret

    iSlider line 250

    How to detect css Features

    If we want to detect whether a css attribute supports a certain value

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

    If we want to detect whether the css3 attribute supports a certain value

    var dom = document.createElement('p');
    
    dom.style.backgroundImage = 'linear-gradient(red, tan)';
    
    if (dom.style.backgroundImage) {
        alert('支持该属性值');
    }
    
    else {
        alert('浏览器不支持该属性值')
    }
    Copy after login
    Copy after login

    How to dynamically assign a value A css3 effect, and supports all mainstream browsers

    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;     })() };
  • Copy after login
    Copy after login

    For more related articles on how to detect css features, please pay attention to the PHP Chinese website!

    Related labels:
    source:php.cn
    Statement of this Website
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
    Popular Tutorials
    More>
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!