CSS3 2D转换实现遮罩效果

实现遮罩效果如下:当鼠标悬停在li的区域,遮罩的矩形会有一个动画。


遮罩效果

分析:

实现遮罩效果步骤

  1. 需要有一个盒子的宽度及高度与li一样,li要设置overflow:hidden;
  2. 将这个盒子定位与li重和
  3. 注意设置盒子的透明度
  4. 实现动画

这里的动画使用了CSS3 2D 转换中的rotate();将遮罩旋转90度

并且设置了转化元素的位置:transform-origin: right bottom; 

附上代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>CSS3D转换</title>
		<style>
			@font-face{
				font-family: cuteFont;
				src:url(font/cutefont.ttf);
			}
			body{
				font-family: cuteFont;
			}
			.box{
				width: 500px;
				height: 152px;
				background-color:rgb(130,166,245);
			}
			.box ul li{
				list-style: none;
				position: relative;
				float: left;/*相当于设置display:block*/
				width: 121px;
				height: 121px;
				background: rgb(255,192,159);
				margin: 10px;
				border: 5px solid rgb(246,214,255);
				overflow: hidden;
			}
			.box ul li img{
				/* display: block; */
				/* margin: 10px auto; */
			}
			.cover{
				width: 121px;
				height: 121px;
				background: rgba(42,82,0,0.7);
				position: absolute;
				left:0;
				top:0;
				/* 动画相关的 */
				/* transform-origin 属性允许您改变被转换元素的位置。 */
				transform-origin: right bottom;
				-webkit-transform-origin: right bottom;
				-moz-transform-origin: right bottom;
				/* transform: rotate(0deg); */
				-webkit-transform: rotate(0deg);
				-moz-transform: rotate(0deg);
				color:rgb(226,219,190);
			}
			
			/* 鼠标悬停在li区域 cover实现动画 */
			.box li:hover .cover{
				/* 顺时针转90度 */
				transform: rotate(90deg);
				-webkit-transform: rotate(90deg);
				-moz-transform: rotate(90deg);
				/* transition属性是一个速记属性有四个属性:
				transition-property,  指定CSS属性的name,transition效果
				transition-duration,transition效果需要指定多少秒或毫秒才能完成
				transition-timing-function, 指定transition效果的转速曲线
				and transition-delay。定义transition效果开始的时候 
				*/
			   /* 设置让动画持续1s */
				transition:all 1s;
				-webkit-transition:all 1s;
				-moz-transition:all 1s;
			}
			
			.cover a{
				/* 设置遮罩中的圆点 */
				display: block;
				width: 20px;
				height: 20px;
				background-color: rgb(226,219,190);
				border-radius: 50%;
				margin: 20px auto;
			}
			.cover p{
				text-align: center;
			}
		</style>
	</head>
	<body>
		<div class="box">
			<ul>
				<li>
					<img src="img/桃美人.jpg" alt="桃美人">
					<div class="cover">
						<a></a>
						<p>桃美人</p>
					</div>
				</li>
				<li>
					<img src="img/吉娃莲.jpg" alt="吉娃娃">
					<div class="cover">
						<a></a>
						<p>吉娃娃</p>
					</div>
				</li>
				<li>
					<img src="img/姬玉露.jpg" alt="姬玉露">
					<div class="cover">
						<a></a>
						<p>姬玉露</p>
					</div>
				</li>
			</ul>
		</div>
	</body>
</html>

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值