18910140161

CSS3 逐渐发光的方格边框

顺晟科技

2021-06-21 11:16:14

499

演示:http://caibaojian.com/demo/2017/03/light.html 一个使用伪元素来实现边框逐渐发光的代码,主要用到scale和opacity这两个属性。 HTML代码:

<div>
	<img src="http://tva2.sinaimg.cn/crop.0.0.180.180.180/6830a53bjw8f2qo4xzc2zj20500500t0.jpg"/>
	<div>
		<p>前端开发博客</p>
		<p>关注前端开发</p>
	</div>
</div>
CSS代码:
.light{
	background: #fff;
	width: 180px;
	height: 180px;
	margin: 100px auto;
	position: relative;
	text-align: center;
	color: #333;
	transform:translate3d(0,0,0);

}
.light-inner{
	padding: 60px 30px 0;
	pointer-events: none;
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	right: 0;
	text-align: center;
	transition: background 0.35s;
	backface-visibility: hidden;
}
.light-inner:before, .light-inner:after{
	display: block;
	content: "";
	position: absolute;
	left: 30px;
	top: 30px;
	right: 30px;
	bottom: 30px;
	border: 1px solid #fff;
	opacity: 0;
	transition: opacity 0.35s, transform 0.35s;
}
.light-inner:before{
	border-left: 0;
	border-right: 0;
	transform:scaleX(0,1);
}
.light-inner:after{
	border-top: 0;
	border-bottom: 0;
	transform: scaleY(1,0);
}
.light:hover .light-inner{
	background: #458fd2
}
.light:hover .light-inner:before, .light:hover .light-inner:after{
	opacity: 1;
	transform: scale3d(1,1,1);
}

.light-inner p{
	transition: opacity .35s, transform 0.35s;
	transform: translate3d(0,20px,0);
	color: #fff;
	opacity: 0;
	line-height: 30px;
}
.light:hover .light-inner p{
	transform: translate3d(0,0,0);
	opacity: 1;
}
实现步骤: 发光的方格,主要是通过.light-inner的伪元素:before:after来实现 上下的边框是从中间往两边逐渐展开:scaleX(0)scaleX(1) 左右的边框是从中间往上下两边展开:scaleY(0)scaleY(1) 形成了一个四方形从中间向边角逐渐发光的效果:opacity:0opacity:1。 其它就没什么技巧了。 scale介绍 scale(<number>[, <number>]):指定对象的2D scale(2D缩放)。个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认取个参数的值 scaleX(<number>):指定对象X轴的(水平方向)缩放 scaleY(<number>):指定对象Y轴的(垂直方向)缩放  

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航