最近看到一些好看的hover的图形缩放效果。然后自己就写了下,发现这2种效果都不错。如果伙伴们更好的实现方式可以在下面留言哦~
还有美团的效果,我就不展示了,喜欢的可以去app应用上看看。
这两种效果,其实实现的原理是一样的,就是用伪类选择器改变背景大小/图片大小。加一个过渡
<!--腾讯新闻效果-->
<a href="javascript:void(0);" class="hover-body hover-body-weixin">
<i></i>
<span></span>
</a>
<!--美图APP效果-->
<a href="javascript:void(0);" class="hover-body-app third-party-app">
<i></i>
</a>
腾讯新闻小logo:外部的a标签实现点击跳转,我这里设置不跳转,i标签使用伪元素代表前景色和背景色,伪元素定位在里面,然后用缩放属性,在伪元素后面放过渡效果
.hover-body {
position: relative;
display: inline-block;
width: 48px;
height: 48px;
}
.hover-body:hover i::after {
transform: scale(1);
}
.hover-body span {
position: relative;
display: block;
width: 48px;
height: 48px;
background-size: 30px;
background-position: center;
background-repeat: no-repeat;
}
.hover-body i {
position: absolute;
top: 0;
left: 0;
width: 48px;
height: 48px;
}
.hover-body i::before {
content: '';
border-radius: 50%;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.hover-body i::after {
content: '';
transition: all .3s;
border-radius: 50%;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
transform: scale(0);
}
.hover-body.hover-body-weixin span {
background-image: url(index.png);
}
.hover-body.hover-body-weixin i::before {
background-color: pink;
}
.hover-body.hover-body-weixin i::after {
background-color: palegoldenrod;
}
美团app仿效果:css,直接在i标签里放背景图片,设置伪元素before和after为2张图片,给图片放大小,加过渡
.hover-body-app{
position: relative;
display: inline-block;
width: 48px;
height: 48px;
margin-left: 6%;
margin-right: 6%;
}
.hover-body-app:hover i::after{
transform: scale(1);
}
.hover-body-app i{
position: absolute;
top: 0;
left: 0;
width: 48px;
height: 48px;
}
.hover-body-app i::before{
content: '';
border-radius: 50%;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.hover-body-app i::after {
content: '';
transition: all .3s;
border-radius: 50%;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
transform: scale(0);
}
.hover-body-app.third-party-app i::before {
background: url(index.png);
background-size: 30px;
background-position: center;
background-repeat: no-repeat;
}
.hover-body-app.third-party-app i::after {
background: url(indexfull.png);
background-size: 30px;
background-position: center;
background-repeat: no-repeat;
}
更多专业前端知识,请上 【猿2048】www.mk2048.com