在寫基于網頁的2048時,想讓一個元素出現時已經通過translate屬性固定在指定位置,同時顯示動畫scale(0)-->scale(1),以實現放大出現效果。
CSS代碼為
@-webkit-keyframes mymove_failed{0% {-webkit-transform:translate(50px,50px) scale(0);}100% {-webkit-transform:translate(50px,50px) scale(1);}}
但是效果卻和預想的不一樣,研究后發現,將translate和scale的順序反過來寫,即可實現預期的效果,如下: @-webkit-keyframes mymove_success{0% {-webkit-transform:scale(0) translate(50px,50px);}100% {-webkit-transform:scale(1) translate(50px,50px);}}
結論:同時使用translate和scale時,應將scale放前面。
只測試了webkit內核的,其他內核未測試,不知道算不算一個BUG。
代碼如下:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style type="text/css">.success {width: 50px;height: 50px;background-color: #BBF7F7;-webkit-animation: mymove_success 1s;-webkit-animation-fill-mode: forwards;}.failed {width: 50px;height: 50px;background-color: #FF6F6F;-webkit-animation: mymove_failed 1s;-webkit-animation-fill-mode: forwards;}@-webkit-keyframes mymove_failed{0% {-webkit-transform:translate(50px,50px) scale(0);}100% {-webkit-transform:translate(50px,50px) scale(1);}}@-webkit-keyframes mymove_success{0% {-webkit-transform:scale(0) translate(50px,50px);}100% {-webkit-transform:scale(1) translate(50px,50px);}}</style>
</head>
<body><div class="success"></div><div class="failed"></div>
</body>
</html>