纯CSS实现 | 可爱的米老鼠眨眼动画

1,306 阅读4分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第21天,点击查看活动详情

我正在参加 码上掘金体验活动,详情:show出你的创意代码块

嗨!大家好!我是手可摘棉花,一名前端开发,很开心在这里分享文章,期待着大家的点赞👍与关注➕。

介绍

嗨,大家好,今天来给大家介绍一下纯css实现可爱的米老鼠眨眼动画效果,本文涉及的知识点看过前面的文章应该也有所了解,html+css,css3动画效果,旋转,放大动画,眨眼动画.下面来给大家详细介绍一下整个制作的过程.

代码块

code.juejin.cn/pen/7090077…

代码介绍

本文米老鼠动画分成两部分完成,一是完成米老鼠制作,二给米老鼠添加动画效果,添加的动画有眨眼动画,晒红放大缩小,小手动画效果。

1. 米老鼠制作

米老鼠制作分成头部(包括脸蛋+眼睛+腮红+嘴巴+鼻子), 耳朵 , 小手.

1.1 米老鼠的头部(包括脸蛋+眼睛+腮红+嘴巴+鼻子)

这部分占用的内容比较多,米老鼠的脸蛋是由三个三个不同形状的椭圆形组成的,眼睛,鼻子也是椭圆画的,嘴巴是高度很小的圆形调节弧度比较弯曲的,腮红则是粉扑扑的圆形组成.

html:

<div class="mickey">
    <div class="head">
      <div class="face">
        <div class="round01"></div>
        <div class="round02"></div>
        <div class="round03"></div>
      </div>
      <div class="eye eye-left"></div>
      <div class="eye eye-right"></div>
      <div class="nose"></div>
      <div class="mouth"></div>
      <div class="shy"></div>
      <div class="shy shy-right"></div>
    </div>
</div>

样式:

.mickey{
  position: relative;
}
.head{
  width: 140px;
  height: 136px;
  border-radius: 48%;
  background: #1D1518;
}
.face .round01{
  width: 124px;
  height: 70px;
  background: #FFEEE2;
  border-radius: 70%;
  position: absolute;
  bottom: -1px;
  left: 10px;
}
.face .round02{
  width: 54px;
  height: 60px;
  background: #FFEEE2;
  border-radius: 70%;
  position: absolute;
  top: 26px;
  left: 23px;
}
.face .round03{
  width: 54px;
  height: 60px;
  background: #FFEEE2;
  border-radius: 70%;
  position: absolute;
  top: 26px;
  right: 23px;
}
.eye{
  width: 20px;
  height: 24px;
  border-radius: 50%;
  background: #1D1518;
  position: absolute;
  top: 63px;
  left: 39px;
}
.eye::after{
  content: "";
  position: absolute;
  top: 5px;
  left: 6px;
  background: #fff;
  width: 4px;
  height: 5px;
  border-radius: 50%;
}
.eye-right{
  left: 82px;
}
.nose{
  width: 14px;
  height: 8px;
  border-radius: 50%;
  background: #1D1518;
  position: absolute;
  left: 64px;
  top: 90px;
}
.mouth{
  width: 26px;
  height: 6px;
  border: 3px solid #1D1518;
  border-radius: 0 0 50% 50%/0 0 100% 100%;
  border-top: none;
  margin: 0 auto;
  position: absolute;
  top: 112px;
  left: 55px;
}

/* 腮红 */
.shy{
  width: 26px;
  height: 26px;
  background: #F58D8B;
  border-radius: 60%;
  position: absolute;
  top: 86px;
  left: 22px;
}
.shy-right{
  left: 96px;
}

1.2 米老鼠的耳朵

米老鼠的耳朵是先画一个大圆定位到左边,复制一份定位在右边去.

html:

<div class="ear ear-left"></div>
<div class="ear ear-right"></div>

样式:

.ear{
  width: 78px;
  height: 78px;
  border-radius: 77% 68%;
  background: #1D1518;
  position: absolute;
  left: -21px;
  top: -31px;
  z-index: -1;
}
.ear-right{
  left: 92px;
}

1.3 米老鼠的小手

米老鼠的小手是椭圆形,通过旋转一下高度,定位到头部下面,用z-index:-1;定位到头部的底层.

html:

<div class="hand hand-left"></div>
<div class="hand hand-right"></div>

样式:

.hand{
  width: 27px;
  height: 50px;
  background: #000;
  border-radius: 60%;
  position: absolute;
  left: 35px;
  bottom: -19px;
  transform: rotate(27deg);
  z-index: -1;
}
.hand-right{
  left: 70px;
  bottom: -3px;
  transform: rotate(-39deg);
}

2. 米老鼠动画效果

米老鼠动画效果包括米老鼠眨眨眼动画, 米老鼠腮红动画, 米老鼠小手动画.

2.1 米老鼠眨眼动画

米老鼠眨眼动画通过控制高度变化还有高度位置,高度挺重要的,如果不设置这个,那么变化高度的时候,就是下面直接向上眨眼,就不会有上下一起动着眨眼的效果.

样式:

.eye{
  animation: wink 0.4s linear infinite alternate;
}
@keyframes wink{
  0%{
    height: 2px;
    top: 74px;
  }
  100%{
    height: 24px;
    top: 63px;
  }
}

2.2 米老鼠腮红动画

米老鼠腮红动画是通过控制腮红就是圆形放大缩小的动画,设置这个值 transform: scale(0.6);里面数字的大小.

样式:

.shy{
  animation: enlarge 0.5s linear infinite alternate;
}
@keyframes enlarge{
  0%{
    transform: scale(0.6);
  }
  100%{
    transform: scale(1);
  }
}

2.2 米老鼠小手动画

米老鼠小手动画是先做左边的动画,因为左右两边的位置跟角度不同,需要设置东西比较多,需要设置基点,来调节旋转的角度transform: rotate(48deg);让小手张开得顺畅一些.右侧的同理.

样式:

.hand-left{
  transform-origin: 35px -19px;
  animation: reach 0.4s ease infinite alternate;
}
@keyframes reach{
  0%{
    transform: rotate(48deg);
  }
  100%{
    left: 35px;
    bottom: -19px;
    transform: rotate(27deg);
  }
}
.hand-right{
  transform-origin: 35px -5px;
  animation: reach2 0.4s ease infinite alternate;
}
@keyframes reach2{
  0%{
    left: 62px;
    transform: rotate(-70deg);
  }
  100%{
    left: 70px;
    bottom: -3px;
    transform: rotate(-39deg);
  }
}

总结

本文主要介绍了米老鼠制作跟动画流程,文中使用的圆形,椭圆形比较多,绝对位置的定位,位置的层级关系,还有动画的旋转角度,放大缩小属性的使用.以上内容介绍到这里,感谢观看,期待大家的点赞与支持,谢谢~