使用浏览器前缀应用内联样式

时间:2012-06-17 16:06:41

标签: jquery

我发现了一个小技巧,允许我使用jquery为带有供应商前缀的类添加样式:

 var myTransform = ($.browser.webkit)  ? '-webkit-transform' :
                       ($.browser.mozilla) ? '-moz-transform' : 
                       ($.browser.msie)    ? '-ms-transform' :
                       ($.browser.opera)   ? '-o-transform' : 'transform';

var myCSSObj = {};

    myCSSObj[myTransform] = 'translate('+centrepos+'px, 0px)';
        $("div.current").css(myCSSObj);

我不完全确定这是如何工作的,所以如果有人能够解释我会非常感激。

但是,我的问题是关于应用此方法并将其添加到jquery片段的内联样式。目前我有以下内容,但它是手动编写的:

$fragment = $('<div class="preload" style="position: relative; -webkit-transform: translate('+start+'px, 0px);"/>');

我希望在将此容器附加到dom时为其提供初始位置。如何在不必手动添加每个浏览器的前缀的情况下添加代码?

3 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望自动执行将特定于供应商的前缀添加到您的css属性的过程。

jquery核心中包含一个API,允许您执行此操作。 jQuery.cssHooks

在文档中有一个关于对border-radius做类似思考的好例子。

答案 1 :(得分:0)

在这里看到这个jsfiddle:

http://jsfiddle.net/molokoloco/f6Z3D/

答案 2 :(得分:0)

你可以查看lea verou的无前缀:http://leaverou.github.com/prefixfree/

  

-prefix-free允许您在任何地方仅使用未加前缀的CSS属性。它在幕后工作,只在需要时将当前浏览器的前缀添加到任何CSS代码中。