我需要同時動畫幾個項目,點擊幾次。我不允許使用Jquery,所以我正在使用原生JavaScript和CSS3。使用javascript點擊css3動畫
Array.prototype.forEach.call(els, function(el) {
elemId = el.getAttribute("id");
var toWidth = boxPos[thisId][elemId].width;
var toHeight = boxPos[thisId][elemId].height;
var toTop = boxPos[thisId][elemId].top;
var toLeft = boxPos[thisId][elemId].left;
var from = "0% {width:"+currPos[elemId].width+"; height:"+currPos[elemId].height+"; top:"+currPos[elemId].top+"; left:"+currPos[elemId].left+";}";
var to = "100% { width:"+toWidth+"; height:"+toHeight+"; top:"+toTop+"; left:"+toLeft+";}";
currPos[elemId].width = toWidth;
currPos[elemId].height = toHeight;
currPos[elemId].top = toTop;
currPos[elemId].left = toLeft;
var styleSheets = document.styleSheets;
for (var i = 0; i < styleSheets.length; ++i) {
for (var j = 0; j < styleSheets[i].cssRules.length; ++j) {
if (styleSheets[i].cssRules[j].type == window.CSSRule.WEBKIT_KEYFRAMES_RULE && styleSheets[i].cssRules[j].name == elemId){
keyframes = styleSheets[i].cssRules[j];
}
}
}
keyframes.deleteRule("0%");
keyframes.deleteRule("100%");
keyframes.insertRule(from);
keyframes.insertRule(to);
el.style.webkitAnimationName = elemId;
});
我在網站周圍搜索,並嘗試使用一些代碼。動畫將運行一次,所有的元素,但只是第一次:'(
這裏是一個非工作示例代碼http://jsfiddle.net/kR384/2/
請同時向我們展示如何附加點擊處理程序以及點擊處理程序如何調用此動畫。 – Bergi
hey @Bergi,剛剛添加完整的代碼,只有10和7框是可點擊的,我應該可以點擊一個接一個動畫只運行一次 – chrysillo
似乎是一個重複[如何重新觸發一個WebKit CSS動畫通過JavaScript?](http://stackoverflow.com/questions/4797675/how-do-i-re-trigger-a-webkit-css-animation-via-javascript) – Bergi