2012-01-16 30 views
3

我使這個全局函數,它將簡單地改變一個元素的變換屬性。 這就是我所擁有的。JavaScript訪問的CSS變換爲歌劇和即

function transform(element, value) { 
    if(element.style.webkitTransform) element.style.webkitTransform = value; 
    else if(element.style.MozTransform) element.style.MozTransform = value; 
} 

我也想添加歌劇和即上述功能。我有歌劇和我一起跑,所以我可以測試歌劇,但我沒有即9。我也不知道我怎麼可以訪問歌劇的。任何人都可以幫忙嗎?

我想是這樣的

function transform(element, value) { 
    if(element.style.webkitTransform) element.style.webkitTransform = value; 
    else if(element.style.MozTransform) element.style.MozTransform = value; 
    else if(element.style.msTransform) element.style.msTransform = value; 
    else if(element.style.oTransform) element.style.oTransform = value; 
} 
+0

嗨,也許你可以使用一些衆所周知的js框架,比如jQueryUi,所有這些東西都已經實現,並且性能很好。 – vaugham 2012-01-16 22:53:00

+1

@vaugham是的,我知道jQuery,但我試圖擺脫它。加上它的不生產代碼,我仍然在學習這個東西..所以我想我應該使用新的東西,而不是jQuery。 – Achshar 2012-01-16 22:56:59

回答

9

你可以隨時將它們全部。其他瀏覽器將忽略他們無法理解的樣式。

function transform(element, value) { 
    element.style.webkitTransform = value; 
    element.style.MozTransform = value; 
    element.style.msTransform = value; 
    element.style.OTransform = value; 
} 
+0

但這會在控制檯中引發錯誤,對吧?我也有歌劇和'oTransform'似乎沒有工作:O – Achshar 2012-01-16 23:06:18

+0

好吧,它不會拋出錯誤,但'oTransform'絕對不是在最新的歌劇。我不能檢查,因爲我沒有ie9安裝在我的機器上。 – Achshar 2012-01-16 23:12:58

+2

@Achshar:嘗試'element.style.OTransform = value;' – 2012-01-16 23:17:31

0

與舊版本的Opera,基於普雷斯托引擎,你應該做的被迫精度降低CSS 2D的「早」實施的副作用變換,例如:

var action = "scale(" + value.toPrecision(4) + ")"; 
element.style.transform = action; 
element.style.oTransform = action; 

我不相信這會對現代實施產生負面影響。