最近看到一些好看的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