css动画遮罩效果自上而下与自下而上

本文介绍了如何使用CSS实现遮罩效果,包括自上而下和自下而上的动画。通过设置父容器的display属性为flex,并结合子容器的初始高度和动画,可以轻松创建这两种效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本结构

<div class="header">
		<div class="inner">
			 <a href="#">标题栏</a>
		</div>
	</div>

1、自上而下

scss:被注释的部分是另外一种自下而上的情况。

 .header {
  	width: 100%;
  	height: 150px;
  	background-image: url(../../assets/1.jpg);
  	background-repeat: no-repeat;
  	background-size: 100% 150px;
  	/*display: flex;
	align-items: flex-end;*/
  	img{
  		width: 100%;
  		height: 150px;
  	}
  	.inner {
  		/*display: none;*/
  		visibility: hidden;
  		/*width: 100%;
  		height: 28px;
  		transition: height 2s;*/
  	}
  	&:hover{   				
  		.inner { 
  			/*visibility:visible;
  			background-color:rgba(0,0,0,.6);
  			height: 100%;*/
  			width:100%;
  			height: 150px;
  			background-color:rgba(0,0,0,.6); 
  			display: block;
  			color: white;
  			position:relative;
            animation:mymove 3s infinite;
            animation-fill-mode: forwards;
            animation-iteration-count:1;
            a{
            	  color: white;
            	  &:hover{
            	  	color: yellow;
            	  }
            }
            	  
  		}
  		@keyframes mymove {
	       from{height: 0px;}
	       to{height: 150px;}	  
		}
		@-moz-keyframes mymove {
		   from{height: 0px;}
	       to{height: 150px;}	  
		}
		@-webkit-keyframes mymove {
		   from{height: 0px;}
	       to{height: 150px;}
		}
		@-o-keyframes mymove {
		   from{height: 0px;}
	       to{height: 150px;}
		}
  	}
  	 	
  }

2、自下而上

主要是利用父容器的display:flex;与子容器设置初始高度,然后通过动画实现自下而上的效果,简化后的代码是:

.header {
  	width: 100%;
  	height: 150px;
  	background-image: url(../../assets/1.jpg);
  	background-repeat: no-repeat;
  	background-size: 100% 150px;
  	display: flex;
	align-items: flex-end;
  	img{
  		width: 100%;
  		height: 150px;
  	}
  	.inner {
  		visibility: hidden;
  		width: 100%;
  		height: 28px;
  		transition: height 2s;
  	}
  	&:hover{   				
  		.inner { 
  			visibility:visible;
  			background-color:rgba(0,0,0,.6);
  			height: 100%;
            a{
            	  color: white;
            	  &:hover{
            	  	color: yellow;
            	  }
            }            	  
  		}  		
  	} 	 	
  }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值