2011-02-14 29 views
2

我在即時創建CSS動畫,因此需要在我的文檔中插入CSS計時功能。在:使用Javascript以動態規則創建CSS(@rules)

@-webkit-keyframes slide 
{ 
    from { 
    -webkit-transform: translateX(-100px) translateY(-100px); 
    -webkit-animation-timing-function: ease-in; 
    } 

    33% { 
    -webkit-transform: translateX(-100px) translateY(-50px); 
    -webkit-animation-timing-function: linear; 
    } 

    66% { 
    -webkit-transform: translateX(-50px) translateY(0px); 
    -webkit-animation-timing-function: linear; 
    } 


    to { 
    -webkit-transform: translateX(0px) translateY(0px); 
    -webkit-animation-timing-function: ease-out; 
    } 
} 

任何想法如何使用JavaScript來取消(插入)?我可以毫無困難地添加常規課程,但這似乎是一個特例。

回答

3

其實,這是從沒有添加任何其他樣式規則的樣式不同:

var selector = "@-webkit-keyframes slide"; 
var rule = "{ from { -webkit-transform: translateX(-100px) translateY(-100px); -webkit-animation-timing-function: ease-in; } 33% { -webkit-transform: translateX(-100px) translateY(-50px); -webkit-animation-timing-function: linear; } 66% { -webkit-transform: translateX(-50px) translateY(0px); -webkit-animation-timing-function: linear; } to { -webkit-transform: translateX(0px) translateY(0px); -webkit-animation-timing-function: ease-out; }  }"; 

document.styleSheets[0].insertRule(selector + rule, 0); 

注意上面的DOM操作是WebKit的(和Firefox)具體。你需要爲IE的s/insertRule/addRule添加一些邏輯。

+1

如果你打算像這樣做樣式表注入,那麼爲什麼不使用JavaScript來做動畫呢? – 2011-02-14 13:45:19