use*_*164 4 html javascript jquery css3
嗨,我想background-image用jquery 设置所有浏览器:
background-image:linear-gradient(green, blue); /* Norme W3C */
background-image:-moz-linear-gradient(green, blue); /* Firefox */
background-image:-webkit-gradient(linear, green, blue); /* Chrome, Safari */
background-image:-o-linear-gradient(green, blue); /* Opera */
background-image:-ms-linear-gradient(green, blue); /* IE */
Run Code Online (Sandbox Code Playgroud)
我这样设置:
$("#"+elmt).css("background-image" , "linear-gradient("+hex+","+$('#test2').val()+")" );
仅适用于W3C,但它适用于Firefox,但不适用于Chrome.
如何设置所有这些设置?
自动CSS前缀:当您在.css()或.animate()中使用CSS属性时,我们将为该浏览器使用正确的前缀属性(适当时).例如,取.css("user-select","none"); 在Chrome/Safari中,我们将值设置为"-webkit-user-select",Firefox将使用"-moz-user-select",IE10将使用"-ms-user-select".
升级到最新版本,应自动处理.
编辑
这应该自动运行,以下内容应该在jQuery 1.8中实现,
var cssPrefixString = {};
var cssPrefix = function(propertie) {
if (cssPrefixString[propertie] || cssPrefixString[propertie] === '') return cssPrefixString[propertie] + propertie;
var e = document.createElement('div');
var prefixes = ['', 'Moz', 'Webkit', 'O', 'ms', 'Khtml']; // Various supports...
for (var i in prefixes) {
if (typeof e.style[prefixes[i] + propertie] !== 'undefined') {
cssPrefixString[propertie] = prefixes[i];
return prefixes[i] + propertie;
}
}
return false;
};
Run Code Online (Sandbox Code Playgroud)
用法
var cssTransform = cssPrefix('Transform'); // "MozTransform" or "WebkitTransform"
if (cssTransform ) {
var cssProp = {};
cssProp['border'] = '1px solid rgba(0, 0, 0, .5)';
cssProp[cssPrefix('Transform')] = 'rotate(20deg)';
cssProp[cssPrefix('borderRadius')] = '5px'; // Keep the camelCaze (jQuery like)
cssProp[cssPrefix('boxShadow')] = '2px 2px 6px grey';
$('div#myDiv').css(cssProp);
// console.log(cssProp);
}
Run Code Online (Sandbox Code Playgroud)
所以这两种方法中的一种应该适合你.