“不务正业”的小凡又来了!(*^▽^*) 今天,我来跟大家分享一个漂浮的地标图标动效,做出来的效果就像一个一样,在页面中飘飘忽忽的,很显眼的,放到页面中大概率能启到吸引人们注意的目的。一起来看一下,它是如何实现的吧!(* ̄︶ ̄)
这是地标图标的样子,漂浮?嗯......O(∩_∩)O 嘿嘿,就让小凡我偷懒一次吧,(*^▽^*) 大家可以做出来自己看一下效果哦!
我们可以将该动效拆成三部分来理解:
第一部分就是最外层的圆形,第二部分就是最下面的小角,第三部分就是中间的白色小圆
有了思路,我们就可以开始写代码了。
在正式开始写代码之前,需要先下载相应的IDE,以及进行必要的配置工作。
小凡在【uni-app项目|vue组件形式实现的科技感loading纯CSS动效】文章中详细讲解过如何进行必要的配置工作,这里就不再重复讲解了,大家可以点击右侧链接查看→科技感Loading动效详解
(1)在home.vue应用启动页中添加一个布局,引入并注册自定义vue组件,在模版中使用自定义vue组件
(4)编写自定义vue组件Landmark.vue
说明:样式代码并没有考虑浏览器兼容问题,本代码的测试环境是谷歌浏览器。
.land-mark{
/*设置相对定位模式 作为绝地定位元素的父元素*/
position: relative;
/*定义元素大小、外形*/
display: block;
border-radius: 100%;
width: 30px;
height: 30px;
/*设置元素阴影*/
filter: drop-shadow(0 1px 1px #973340a3);
/*设置元素背景图样式*/
background-image: linear-gradient(0deg, red, #ff8484);
/*设置元素动画效果*/
animation: jump infinite 2s ease;
}
分析:创建一个正方形图形,利用transform属性,将元素X轴稍微放大一些,顺时针旋转45度,最后适当调整下元素Y轴位置,OK!一个小胡子就成功添加到圆形的下方了!
|
|
|
.land-mark::before{
content: '';
/*绝对定位元素*/
position: absolute;
/*设置元素位置*/
bottom: 0;
left: 50%;
/*设置元素层级关系*/
z-index: -2;
/*定义元素大小、背景色*/
display: block;
margin-left: -5px;
width: 10px;
height: 10px;
background-color: red;
/*设置X轴缩放比例、旋转图形、调整Y轴位置*/
transform: scaleX(1.3) translateY(2px) rotate(45deg)
}
.landmark::after{
content: '';
/*绝对定位*/
position: absolute;
/*设置元素位置*/
top: 50%;
left: 50%;
/*设置元素形状、大小、背景色*/
display: block;
margin-left: -5px;
margin-top: -5px;
width: 10px;
height: 10px;
border-radius: 100%;
background-color: white;
/*设置元素内阴影样式*/
box-shadow: inset 0 1px 0 rgba(0,0,0,0.4);
}
说明:伪元素中添加的animation属性与@keyframes一起使用,从而实现不同的动画效果,0%表示开始动画,100%表示结束动画,当然我们还可以在中间设置新的关键帧,例如:在0%和100%中间再设置一个50%。我们可以利用transform属性的translateY()方法,分别在关键帧上改变一下元素在Y轴的位置就可以了。
.landmark{
......
/*添加动画效果*/
animation: jump infinite 2s ease;
}
@keyframes jump {
0%{
transform: translateY(0px);
}
50%{
transform: translateY(-10px);
}
100%{
transform: translateY(0px);
}
}
怎么样?做出来的效果大家都看到了吧,原谅我的懒惰 O(∩_∩)O,好啦,下面我们来简单总结下这个动效中的知识点:
以上就是本文中用到的知识点,小凡还得啰嗦两句,这个动效本身并不难理解,稍微有一点点绕的地方应该就是如何给圆形下面做一个“小胡子”。如果不了解CSS中的transform属性中的方法,小凡觉得实现起来还是有点麻烦的,所以,要想有好的创意就必须要有足够的技能,本文分享的动效就再一次证实了这句话!所以啦,小凡还是要和大家一起“努力学习,天天进步” (*^▽^*)
如果喜欢小凡的这篇文章,记得点赞、收藏和分享哦!也欢迎大家在评论区留言。
相关文章推荐:
详细解析:uni-app|vue组件实现会撒娇的旗帜徽章纯CSS动效
详细解析:uni-app|vue组件实现跳动的心脏图标纯CSS动效