2017-02-09 73 views
1

我有一個按鈕內的svg。它有一個初始動畫,當你懸停時,它會有另一個反轉動畫給你旋轉的影響。IE11保留CSS動畫的問題

在IE11中(也在Edge上)存在一個繪製問題,如該示例中所示,該問題重現了該問題。

http://jsbin.com/wuricogope/edit?html,css,js,output

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width"> 
    <title>JS Bin</title> 
</head> 
<body> 
<button>hi 
    <svg class="icon"> 
    <rect width="10" height="10" style="fill:blue;stroke:pink;stroke-width:5;">  
    </svg> 
</button> 
</body> 
</html> 

風格

* { 
    box-sizing: border-box; 
} 

button { 
    position: relative; 
    background: #0066a5; 
    color: #fff; 
    padding: 20px; 
    padding-right: 58px; 
    box-shadow: none; 
    transition: box-shadow 0.31s cubic-bezier(0.785, 0.135, 0.15, 0.86); 
    font-weight: 700; 
    overflow: hidden; 
    -webkit-appearance: none; 
    -moz-appearance: none; 
    border: 0; 
    box-shadow: none; 
} 

@keyframes roll-back-rotate { 
    49% { 
     transform: translateY(-44px) rotate(0deg); 
    } 
    50% { 
     transform: translateY(28px) rotate(0deg); 
     opacity: 0; 
    } 
    51% { 
     opacity: 1; 
    } 
} 

@keyframes roll-rotate { 
    49% { 
     transform: translateY(28px) rotate(0deg); 
    } 
    50% { 
     opacity: 0; 
     transform: translateY(-44px) rotate(0deg); 
    } 
    51% { 
     opacity: 1; 
    } 
} 

.icon { 
    position: absolute; 
    width: 10px; 
    height: 10px; 
    right: 20px; 
    top: 50%; 
    transform: translateY(-50%) rotate(-90deg); 
    animation: roll .4s forwards; 
    animation-name: roll-back-rotate; 
} 

button:hover .icon { 
    animation-name: roll-rotate; 
} 

回答

0

我們做了什麼來解決這個問題是我們動畫頂部,而不是變換:tranlateY()