用css3動畫 @keyframes裏設置transform:rotate(); 控制動畫暫停和運動能夠用屬性:animation-play-state:paused(暫停)|running(運動);可是有個讓人吐血的問題,無論我怎麼調加什麼兼容前綴,在微信和safari裏設置paused無效,在QQ裏是正常的css
當@keyframes裏不用transform的時候(如:@keyframes{from{width:100px}to{width:200px}),設置寬高背景等等都是沒問題的,而後就想到了一個很笨的解決方法:css3
將圖片改成序列圖,以關鍵幀的形式建立動畫,這樣設置animation-play-state就有效了,css代碼以下:web
.animate{
-webkit-animation:move 2s steps(15) infinite;
animation: move 2s steps(15) infinite;
-moz-animation: move 100ms steps(15) infinite;/*序列圖有16張*/
-webkit-animation-play-state: paused;
animation-play-state: paused;
}
@-webkit-keyframes change{
0%{-webkit-transform:rotate(0deg)}
50%{-webkit-transform:rotate(180deg)}
100%{-webkit-transform:rotate(360deg)}
}
@keyframes change {
0%{transform:rotate(0deg)}
50%{transform:rotate(180deg)}
100%{transform:rotate(360deg)}
}
@-moz-keyframes change{
0%{-moz-transform:rotate(0deg)}
50%{-moz-transform:rotate(180deg)}
100%{-moz-transform:rotate(360deg)}
}
@-webkit-keyframes move{
0%{background-position-y:-0px}
100%{background-position-y:-600px}
}
@keyframes move {
0%{background-position-y:-0px}
100%{background-position-y:-600px}
}
@-moz-keyframes move{
0%{background-position-y:-0px}
100%{background-position-y:-600px}
}
js控制暫停播放代碼:
var flag = 0;//初始時音樂爲暫停狀態 $('#music').click(function(){ if(flag==0){ $('#audio').get(0).play(); $('.music').css({'-webkit-animation-play-state':'running','animation-play-state':'running'}); $('.musicMask').hide(); flag=1; }else if(flag==1){ $('#audio').get(0).pause();// $('.music').removeClass('animate'); $('.music').css({'-webkit-animation-play-state':'paused','animation-play-state':'paused'}); $('.musicMask').show(); flag=0; } })