摘要:效果预览按下右侧的点击预览按钮可以在当前页面预览,点击链接可以全屏预览。源代码下载每日前端实战系列的全部源代码请从下载代码解读定义,容器中包含个元素,分别代表机体按钮支腿手柄和面包。
效果预览
按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。
https://codepen.io/comehope/pen/OEBJRN
可交互视频此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。
请用 chrome, safari, edge 打开观看。
https://scrimba.com/p/pEgDAM/c6bkqT2
源代码下载每日前端实战系列的全部源代码请从 github 下载:
https://github.com/comehope/front-end-daily-challenges
代码解读定义 dom,容器中包含 5 个元素,分别代表机体、按钮、支腿、手柄和面包。
</>复制代码
居中显示:
</>复制代码
body {
margin: 0;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(to right bottom, moccasin, teal);
}
定义容器尺寸:
</>复制代码
.toaster {
width: 30em;
height: 30em;
background-color: snow;
font-size: 10px;
border-radius: 50%;
}
画出机体:
</>复制代码
.toaster {
position: relative;
}
.body {
width: 16em;
height: 14em;
background-color: seagreen;
position: absolute;
top: 10em;
left: 6em;
border-radius: 2.5em;
border-right: 1.5em solid darkgreen;
}
画出按钮:
</>复制代码
.button {
width: 2.5em;
height: 2.5em;
background-color: tomato;
position: absolute;
top: 13em;
left: 16em;
border-radius: 50%;
}
画出支腿:
</>复制代码
.legs::before,
.legs::after {
content: "";
position: absolute;
width: 1.5em;
height: 2em;
background: tomato;
top: 24em;
}
.legs::before {
left: 9em;
}
.legs::after {
right: 10em;
}
画出手柄:
</>复制代码
.handle {
width: 4.2em;
height: 1.8em;
background-color: tomato;
position: absolute;
top: 12em;
right: 2.4em;
border-radius: 0 0.6em 0.6em 0;
}
画出面包:
</>复制代码
.toaster {
z-index: 1;
}
.toast {
width: 9em;
height: 6em;
background-color: gold;
position: absolute;
top: 4em;
left: 10em;
border-radius: 2em 2em 0 0;
border-right: 0.6em solid goldenrod;
z-index: -1;
}
为机体增加一些光影:
</>复制代码
.body::before,
.body::after {
content: "";
position: absolute;
width: 5em;
height: 5em;
border: 0.6em solid transparent;
border-radius: 50%;
border-left-color: white;
}
.body::before {
transform: rotate(40deg);
top: 1em;
left: 1em;
}
.body::after {
bottom: 1em;
right: 1em;
transform: rotate(210deg);
}
定义动画效果:
</>复制代码
@keyframes bake {
0%, 20% {
transform: translateY(0);
}
80%, 100% {
transform: translateY(6em);
}
}
最后,把动画效果应用到手柄和面包上:
</>复制代码
.handle {
animation: bake 3s infinite alternate;
}
.toast {
animation: bake 3s infinite alternate;
}
大功告成!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/116771.html
摘要:效果预览按下右侧的点击预览按钮可以在当前页面预览,点击链接可以全屏预览。源代码下载每日前端实战系列的全部源代码请从下载代码解读定义,容器中包含个元素,分别代表机体按钮支腿手柄和面包。 showImg(https://segmentfault.com/img/bVbcL0M?w=500&h=500); 效果预览 按下右侧的点击预览按钮可以在当前页面预览,点击链接可以全屏预览。 https...
摘要:过往项目年月份项目汇总共个项目年月份项目汇总共个项目年月份发布的项目前端每日实战专栏每天分解一个前端项目,用视频记录编码过程,再配合详细的代码解读,是学习前端开发的活的参考书视频演示如何用纯创作一个表达怀念童年心情的条纹彩虹心特效视频演示如 过往项目 2018 年 5 月份项目汇总(共 30 个项目) 2018 年 4 月份项目汇总(共 8 个项目) 2018 年 6 月份发布的项目 ...
摘要:过往项目年月份项目汇总共个项目年月份项目汇总共个项目年月份发布的项目前端每日实战专栏每天分解一个前端项目,用视频记录编码过程,再配合详细的代码解读,是学习前端开发的活的参考书视频演示如何用纯创作一个表达怀念童年心情的条纹彩虹心特效视频演示如 过往项目 2018 年 5 月份项目汇总(共 30 个项目) 2018 年 4 月份项目汇总(共 8 个项目) 2018 年 6 月份发布的项目 ...
阅读 2051·2023-04-26 02:32
阅读 714·2021-11-18 13:12
阅读 2604·2021-10-20 13:48
阅读 2693·2021-10-14 09:43
阅读 4006·2021-10-11 10:58
阅读 3864·2021-09-30 10:00
阅读 3072·2019-08-30 15:53
阅读 3655·2019-08-30 15:53