2017-07-22 41 views
1

有人可以告訴我爲什麼我的圖標在它應該旋轉時恰好向右移動?HTML圖像在應該旋轉時向右移動

.rotate-icon{ 
    display: inline-block; 
    -webkit-transition: -webkit-transform 0.6s ease-out; 
    -moz-transition: -moz-transform 0.6s ease-out; 
    -transition: -transform 0.6s ease-out; 
} 
.rotate-icon:hover{ 
    display: inline-block; 
-webkit-transform: rotate(-360deg); 
-moz-transform: rotate(-360deg); 
-transform: rotate(-360deg); 
} 
img{ 
position:absolute; 
top: 95vh; 
left:10%; 
transform: translate(-50%, -50%); 
} 

JSfiddle

因爲我很新的HTML,爲什麼我不轉動,即使它應該我無法得到它。 我的目標是在懸停時旋轉的左下角圖標上顯示一個圖標。

感謝您的回答。

+0

如果您從圖像變換,它確實旋轉。爲什麼你對圖像有所改變? –

+0

我認爲有必要把它放在角落裏。 嗯,但非常感謝。 – Stalk3r

+0

您的問題,正如我在下面寫的,與變換相關:翻譯 –

回答

0

你所申請的單項兩個過渡,這ins't讓旋轉工作, 從IMG風格規則中刪除 transform: translate(-50%, -50%);,和它的作品像你期望的那樣。

這裏是你

+0

非常感謝。 – Stalk3r

+0

如果有幫助,請接受答案,以便其他人也可以從中獲得幫助,謝謝 –

1

您不能使用此:

transform: translate(-50%, -50%); 

它覆蓋此:-transform: rotate(-360deg);,所以你沒有很好的位置元素。

如果你想在你的問題中寫下你想旋轉的元素,你應該將transform: translate(-50%, -50%);移動到父元素。

+0

非常感謝。 – Stalk3r

0

一個fiddle你覆蓋translate()當你rotate()懸停重新定義transform。結合這兩個transform屬性並設置一個初始的rotate()以從中過渡。

.rotate-icon{ 
 
    display: inline-block; 
 
\t -webkit-transition: -webkit-transform 0.6s ease-out; 
 
\t -moz-transition: -moz-transform 0.6s ease-out; 
 
\t transition: transform 0.6s ease-out; 
 
} 
 
.rotate-icon:hover{ 
 
    display: inline-block; 
 
\t -webkit-transform: translate(-50%, -50%) rotate(-360deg); 
 
\t -moz-transform: translate(-50%, -50%) rotate(-360deg); 
 
\t transform: translate(-50%, -50%) rotate(-360deg); 
 
} 
 
img{ 
 
\t position:absolute; 
 
\t top: 95vh; 
 
\t left:10%; 
 
    transform: translate(-50%, -50%) rotate(0deg) ; 
 
}
<img src="https://d30y9cdsu7xlg0.cloudfront.net/png/2149-200.png" class="rotate-icon">

+0

它不能解決重新計算高度/寬度的問題。您可以在動畫期間在滾動條上看到它。在我看來,使用翻譯和旋轉一個動畫是不好的主意。 –

+0

@kris_IV你是什麼意思「你可以在動畫中看到它在滾動條上」? OP最初使用'translate()'定位元素,然後用'rotate()'覆蓋'translate()'。我假設他們有意使用'translate()'來定位元素,然後他們只是想在相同的位置旋轉()。你爲什麼要刪除他們原來的位置?他們所需要做的就是結合'transform'屬性。 –

+0

@michaelcooker在滾動條上看。他把額外的CSS頂部:95vh; left:10%;'在動畫中頂部不頂部,左邊不剩,所以你可以看到真實大小的文件在動畫過程中正在變化。對我來說,這看起來不是很好的解決方案。在我看來,他應該創建父'div',將它放置在合適的位置,然後僅使用旋轉來處理'img'(子) –