关闭
> css教程 > css >

导航条纯CSS做hover离开后的平滑过渡动画

来源:网络 文章列表 2020-12-19 8
把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>

 

腾讯云限量秒杀

1核2G 5M 50元/年 2核4G 8M 74元/年 4核8G 5M 818元/年 CDN流量包 100GB 9元

版权声明

本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。

评论

  • 随机获取
点击刷新
精彩评论