如何防止CSS3轉換回來? 例如:當我使用如何防止CSS3轉換回來?
div
{
-webkit-transition:-webkit-transform 2s;
}
div:hover
{
-webkit-transform:rotate(360deg);
}
每當我提出我的鼠標了它旋轉回來,怎麼預防呢?所以當我將鼠標放在div上時它只能向前旋轉,而當鼠標離開div時不會旋轉回來?
如何防止CSS3轉換回來? 例如:當我使用如何防止CSS3轉換回來?
div
{
-webkit-transition:-webkit-transform 2s;
}
div:hover
{
-webkit-transform:rotate(360deg);
}
每當我提出我的鼠標了它旋轉回來,怎麼預防呢?所以當我將鼠標放在div上時它只能向前旋轉,而當鼠標離開div時不會旋轉回來?
這就是:hover
的工作原理。只有當鼠標移過元素時纔有效。要做更長久的事情,你需要JavaScript。
您可以改爲使用CSS動畫,並將animation-fill-mode
屬性設置爲forwards
,這將保持結束狀態。
這是一個快速demo。正如你所看到的,它只能旋轉360度,然後停下來(這是你想要的嗎?)。如果你想讓它保持,只要你擁有鼠標放在div
旋轉,則可以更改forwards
到infinite
並設置animation-timing-function
到linear
(保持一致的速度)。
像這樣:
animation: rotate 2s linear infinite;
但是,當你徘徊了,因爲它打破了動畫&我不認爲有一個修復這個也不會好看。我希望這有助於。如果沒有,如另一個答案中提到的那樣,也許JavaScript解決方案會更好。
這裏是演示代碼。
HTML
<div class="box"></div>
CSS
.box {
width: 100px;
height: 100px;
background: #333;
}
.box:hover {
-webkit-animation: rotate 2s forwards;
animation: rotate 2s forwards;
}
@-webkit-keyframes rotate {
100% { -webkit-transform: rotate(360deg); }
}
@keyframes rotate {
100% { transform: rotate(360deg); }
}
你可能已經解決了這個已經,但如果你沒有在這裏是解決一個360度的滾轉你的具體問題。
div
{
-webkit-transition: all 0.0s ;
-moz-transition: all 0.0s ;
-o-transition: all 0.0s ;
transition: all 0.0s;
}
div:hover
{
-webkit-transform: rotate(360deg);
-moz-transform: rotate(360deg);
transform: rotate(360deg);
-webkit-transition: all 2s ease;
-moz-transition: all 2s ease;
-o-transition: all 2s ease;
transition: all 2s ease;
}
這是正確的答案。至少從簡單性和相關性的角度來說,不會偏向另一種方法。這種方法只是做了什麼問題,通過清除物品不再徘徊的轉換時間(通常會倒回)來消除任何滯留的「倒回」過渡效果。 – Lev