怎么使用CSS绘制一个可爱卡通狮子动画

发布时间:2022-04-22 13:54:56 作者:iii
阅读:162
前端开发者专用服务器,限时0元免费领! 查看>>

这篇文章主要介绍了怎么使用CSS绘制一个可爱卡通狮子动画的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用CSS绘制一个可爱卡通狮子动画文章都会有所收获,下面我们一起来看看吧。

怎么使用CSS绘制一个可爱卡通狮子动画

演示

正文

基础绘制

我们在先来康康这只狮子有哪些部分组成:

怎么使用CSS绘制一个可爱卡通狮子动画

通过以上视图,这只狮子是由 耳朵+眼睛+鼻子+胡须+嘴巴+鬃毛+前腿+爪子+尾巴 这些部分组成。相信大家不难看出很多部位可以通过非常简单做矩形和圆角句可以完成他们。比如眼睛,就是两个圆形堆叠而成,具体可以看上面的代码演示,这里对于这些基础图形就不做过多讲述了。

接下来,我们就具体说说,一些不好绘制的图形吧。

耳朵

可以看到它似半圆形,像是花瓣一样,常规方法来做的话肯定是不好实现的, 但可以通过  clip-path 属性,它是使用裁剪方式创建元素的可显示区域,其区域内的部分显示,区域外的隐藏。而绘制耳朵,我们就利用这区域裁剪,其 ellipse 椭圆裁切的方法,其 两个传入至分别表示其裁切的半径,而at后的两个值则代表裁切的x与y轴的坐标。

.ear {
    width: 70px;
    height: 70px;
    position: absolute;
    top: 10px;
    background-color: var(--skin-color);
    z-index: 9;
    border-radius: 40px;
    clip-path: ellipse(100% 100% at -20% -10%);
}

怎么使用CSS绘制一个可爱卡通狮子动画

同理,那个类似于半圆的身体也是通过 clip-path: ellipse 来实现的,当然不止于此他可以裁剪出任何图形来,可以说非常的强大了。

鼻子

鼻子是一个三角形而构成,css绘制三角形也是一个小技巧,就是把 widthheight 设为 0,单纯使用 border 属性来完成,设置 border-width 使其代替块的宽高,但其块的内部是由四个小三角形拼成的矩形了,然后因为排布是上右下左的顺序,所以只要给其中一个角的颜色赋值即可实现一个三角形。

.nose {
    width: 0px;
    height: 0px;
    border-width: 20px 30px;
    border-style: solid;
    border-color: var(--eye-color) transparent transparent transparent;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    margin-top: 40px;
    z-index: 3;
}

怎么使用CSS绘制一个可爱卡通狮子动画

尾巴

尾部主要也是利用  border 来实现,画一个矩形div块,让他旋转一定角度,然后只绘制其中一个边框,然后再使用  border-radius: 40% 50% , 给它弯曲的一种感觉就大功告成了。

.tail {
    width: 320px;
    height: 320px;
    position: absolute;
    top: -137px;
    border-style: solid;
    border-width: 30px;
    border-radius: 40% 50%;
    border-color: transparent var(--tail-color) transparent transparent;
    transform: rotate(125deg);
    left: -180px;
}

怎么使用CSS绘制一个可爱卡通狮子动画

动画制作

摇尾巴

尾部的力量都源于尾巴根,所以要从根部进行一个轻微摇摆的旋转动画,所以,我们就利用到了 transform-origin 属性,它可以让你更改一个元素变形的原点,如,根部发力那么就直接设置成  transform-origin: 50% 100% 也可以写成   transform-origin: center bottom

第一个参数代表了定义变形中心距离盒模型的左侧的偏移值。

keywordvalue
left0%
center50%
right100%

第二个参数代表了定义变形中心距离盒模型的顶的偏移值。

keywordvalue
top0%
center50%
bottom100%

后面的动画微微的旋转偏移就看下方的代码块了,非常简单只需要微调一些角度和偏移即可。这里再多补充一句,transform 的变换必须是盒模型定位的元素哦。

.tail {
  // ...
  animation: 1s wagging ease-in-out infinite alternate forwards;
  transform-origin: 50% 100%;
}

@keyframes wagging {
  0% {
    transform: rotate(125deg) translateX(0) translateY(0px);
  }
  100% {
    transform: rotate(130deg) translateX(15px) translateY(-15px);
  }
}

眨眼睛

眼睛一眨一眨会显得狮子会更生动,但是如果通过缩小高度做动画实现的画,会显得非常难看因为连眼白眼珠都会压缩变形。所以我们依然是通过 clip-path 属性,利用 ellipse 方法把裁剪范围从顶部和底部往中间延伸,直至2%留一道缝隙即可。

.eye {
  // ...
  animation: 4s blinking infinite forwards;
  overflow: hidden;
}
@keyframes blinking {
  0%,
  40%,
  80% {
    clip-path: ellipse(100% 100% at 50% 48%);
  }
  60%,
  100% {
    clip-path: ellipse(100% 2% at 50% 48%);
  }
}

关于“怎么使用CSS绘制一个可爱卡通狮子动画”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“怎么使用CSS绘制一个可爱卡通狮子动画”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:
  1. 使用canvas怎么绘制一个直线动画
  2. 使用Css怎么绘制一个扇形

开发者交流群:

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

css

上一篇:react是不是组件化开发

下一篇:css中id与class的区别有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》
开发者交流群×