由于hover偽類添加的動畫效果,僅當鼠標放在元素上時會被觸發(fā),而當鼠標離開時,效果會中斷,會顯得很生硬。
大多數(shù)人的想法都是使用js的onmouseover和onmouseleave事件來實現(xiàn)動畫效果。其實不必這么麻煩,CSS3便可以幫你解決這些問題。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>離開時效果生硬</title>
<style type="text/css">
div{
width: 100px;
height: 100px;
border:1px solid; margin:0px auto;
margin-top: 200px;
}
div:hover{
transform: scale(2);
transition: all 1s linear;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
由于div元素只有在:hover偽類觸發(fā)的時候,效果才能加到div元素上。
當鼠標離開div元素的時候,:hover偽類將不再生效,瞬間丟掉hover里寫的動畫效果。
此時,我們應當在原本元素上再寫一個一模一樣的transition效果,將離開斷掉的動畫效果續(xù)接上。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>簡單解決</title>
<style type="text/css">
div{
width: 100px;
height: 100px;
border:1px solid; margin:0px auto;
margin-top: 200px;
/* 在原本元素上再加一個transition */
transition: all 1s linear;
}
div:hover{
transform: scale(2);
transition: all 1s linear;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
此時,不管鼠標在什么時候離開元素,都會原樣返回。
新聞熱點
疑難解答