0

我发现了一个小技巧,可以让我使用 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 时给它一个初始位置。如何添加代码而无需手动添加每个浏览器的前缀?

4

3 回答 3

1

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

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

在文档中有一个很好的例子来做类似的思考border-radius

于 2012-06-17T16:26:26.420 回答
0

在这里看到这个jsfiddle:

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

于 2012-06-17T16:27:28.980 回答
0

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

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

于 2012-06-17T16:35:28.617 回答