效果预览

按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。

https://codepen.io/comehope/pen/xzYVzO

可交互视频

此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。

请用 chrome, safari, edge 打开观看。

https://scrimba.com/p/pEgDAM/cRkRLsm

源代码下载

每日前端实战系列的全部源代码请从 github 下载:

https://github.com/comehope/front-end-daily-challenges

代码解读

定义 dom,容器中包含 2 个元素:

<div class="eyes">
<span class="left"></span>
<span class="right"></span>
</div>

居中显示:

body {
margin: 0;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background-color: black;
}

定义容器尺寸:

.eyes {
width: 40em;
height: 10em;
font-size: 10px;
}

画出眼睛的轮廓:

.eyes {
position: relative;
} .eyes > * {
box-sizing: border-box;
position: absolute;
width: 15em;
height: 10em;
border: solid white;
} .eyes .left {
left: 0;
} .eyes .right {
right: 0;
}

画出眼球:

.eyes > * {
border-width: 0 5em;
} .eyes .left {
border-radius: 50% 0;
} .eyes .right {
border-radius: 0 50%;
}

使双眼向内聚拢:

.eyes .left {
transform: rotate(25deg);
} .eyes .right {
transform: rotate(-25deg);
}

定义眨眼的动画:

@keyframes blink {
40%, 60% {
border-width: 0 5em;
} 50% {
border-width: 0 7.5em;
}
}

最后,把动画效果应用到两只眼睛上:

.eyes > * {
animation: blink 2s linear infinite;
}

大功告成!

最新文章

  1. 使用OAuth、Identity创建WebApi认证接口供客户端调用
  2. 利用eclips创建一个maven项目
  3. 织梦dedecms调用栏目的SEO标题、描述、关键字的方法
  4. Spring框架中的IOC和DI的区别
  5. 从点击Button到弹出一个MessageBox, 背后发生了什么(每个UI线程都有一个ThreadInfo结构, 里面包含4个队列和一些标志位)
  6. “简密”App Store处女作开发总结
  7. Oracle学习笔记之用户自定义函数
  8. MySQL主从复制原理以及架构
  9. 链表的无锁操作 (JAVA)
  10. 最长上升子序列(LIS)
  11. python学习笔记(四)
  12. Tomcat 7.0安装与配置
  13. 使用Java注解自动化处理对应关系实现注释代码化
  14. python 部分函数
  15. C# WebRequest处理Https请求
  16. IP判断 (字符串处理)
  17. No mapping found for HTTP request with URI异常的原因,&lt;mvc:default-servlet-handler/&gt;的作用
  18. linux 分析进程占用CPU过高
  19. 机器人自主移动的秘密:SLAM与路径规划有什么关系?(三)
  20. ajax的serialize()方法

热门文章

  1. BUUCTF | MD5
  2. R中unlist函数的使用
  3. ubuntu16.04 常用软件
  4. Windows 08R2_AD图文详解
  5. Asp.Net Core 第04局:依赖注入
  6. vue 点击其他地方隐藏dom
  7. 利用Graphziv帮助理解复杂的类层次关系
  8. MSF——Meterpreter(三)
  9. docker调用yum时“&quot;/usr/libexec/urlgrabber-ext-down&quot; is not installed”
  10. A Bite Of React(1)