导航条纯CSS做hover离开后的平滑过渡动画
把hover的过渡css也在原来样式里写一份即可。这里要特别注意一点,transition的第一个变换属性如果要写,一定要写all,或者省略默认是all。比如下面例子是变换width,如果写transition: width 0.3s; hover离开时动画就不会生效。
背景
实际项目中,很多时候会用hover做鼠标进入目标元素动画,此时如果想让动画有过渡效果,可以使用css3属性transition。但是离开之后动画就立即停止了,体验效果并不好。有些同学就想到用onmouseover和onmouseout事件来处理动画过渡,虽然可行,但是太麻烦,我们要秉承着能用css解决的问题绝对不用js解决。
解决方案
其实这里把hover的过渡css也在原来样式里写一份即可。这里要特别注意一点,transition的第一个变换属性如果要写,一定要写all,或者省略默认是all。比如下面例子是变换width,如果写transition: width 0.3s;
hover离开时动画就不会生效。
效果图
具体代码
<!DOCTYPE html>
<html lang="zh">
<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">
.box {
display: flex;
}
.item {
padding: 5px 10px;
font-size: 14px;
position: relative;
cursor: pointer;
}
.item:after {
display: block;
content: '';
width: 0;
height: 4px;
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
background-color: #fff;
transition: all 0.3s;
}
.item:hover:after {
display: block;
content: '';
width: 80%;
height: 4px;
background-color: black;
transition: all 0.3s;
}
</style>
</head>
<body>
<div class="box">
<span class="item">导航一</span>
<span class="item">导航二</span>
<span class="item">导航三</span>
</div>
</body>
</html>
版权声明
本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。
评论