效果预览

在线演示

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

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

可交互视频教程

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

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

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

源代码下载

本地下载

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

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

代码解读

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

<div class="loader"><span></span><span></span><span></span><span></span><span></span>
</div>

居中显示:

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

画出小球的挂线:

.loader {position: absolute;display: flex;width: 12em;font-size: 10px;justify-content: space-between;
}.loader span {position: relative;width: 0.2em;height: 10em;background-color: black;transform-origin: top;
}

画出小球:

.loader span::before {content: '';position: absolute;bottom: 0;width: 3em;height: 3em;border-radius: 50%;background-color: black;left: -1.4em;
}

画出牛顿摆的挂架:

.loader {border-style: solid;border-color: black;border-width: 0.4em 0.1em 4em 0.1em;padding: 0 4em 2em 4em;
}

让最左侧的摆线晃动:

.loader span:first-child {animation: moving-up 0.75s cubic-bezier(0.215, 0.61, 0.355, 1) infinite alternate;--direction: 1;
}@keyframes moving-up {0%{transform: rotate(0deg);}50%{transform: rotate(0deg);}100%{transform: rotate(calc(45deg * var(--direction)));}
}

最后,让最右侧的摆线晃动:

.loader span:last-child {animation: moving-up 0.75s cubic-bezier(0.215, 0.61, 0.355, 1) infinite alternate-reverse;--direction: -1;
}

大功告成!

原文地址:https://segmentfault.com/a/1190000015270808

更多专业前端知识,请上 【猿2048】www.mk2048.com

如何用纯 CSS 创作一个永动的牛顿摆相关推荐

  1. 如何用纯 CSS 创作一个小球上台阶的动画

    如何用纯 CSS 创作一个小球上台阶的动画 效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/come ...

  2. 如何用纯 CSS 创作一个荧光脉冲 loader 特效

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/erRzzR 可交互视频教程 此视 ...

  3. 如何用纯 CSS 创作一个同心圆弧旋转 loader 特效

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/OZmXQX 可交互视频教程 此视 ...

  4. 如何用纯 CSS 创作一个冒着热气的咖啡杯

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/xjXxoz 可交互视频教程 此视 ...

  5. 如何用纯 CSS 创作一个渐变色动画边框

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/odpRKX 可交互视频教 ...

  6. 如何用纯 CSS 创作一个金属光泽 3D 按钮特效

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/full/MGeRRO 可交互视频教程 此 ...

  7. 如何用纯 CSS 创作一个金属光泽 3D 按钮特效 1

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/full/MGeRRO 可交互视频教程 此 ...

  8. 前端每日实战:45# 视频演示如何用纯 CSS 创作一个菱形 loader 动画

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/eKzjqK 可交互视频教程 此视频 ...

  9. 如何用纯 CSS 创作一个单元素抛盒子的 loader

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/qKwXbx 可交互视频 ...

  10. 如何用纯 CSS 创作一个文本淡入淡出的 loader 动画

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/ERwpeG 可交互视频 ...

最新文章

  1. 全球第三大手机操作系统!倒闭!
  2. 简述Docker过去6个月的变化
  3. AppsFlyer将API网关服务从Clojure迁移到Golang
  4. Matlab | Matlab从入门到放弃(7)——struct结构体
  5. 英国帝国理工出品:SSIM对抗攻击
  6. QT的QStackedWidget类的使用
  7. C++学习笔记-----继承体系中函数的重载,覆盖和隐藏的区别
  8. mysql-odbc的zip安装方法_win10环境下mysql-odbc的zip安装方法
  9. Leetcode每日一题:559.maximum-depth-of-n-ary-tree(N叉树的最大深度)
  10. 微软云架构服务器,微软云存储架构(Azure Cloud Storage)
  11. 68. 使用Apache的rewrite技术
  12. 中小型软件产品解决方案模板
  13. C++ 隐藏窗口在任务栏的显示
  14. HIVE一些字符处理
  15. Python爬虫:盖楼抽奖还手动?自动的她不香吗?
  16. 基于飞桨本地ocr安卓按键插件
  17. 国网大数据中心是如何进行数据治理的?
  18. 汽车温度采集记录测量管理的重要性以及K-TC测量模块介绍 热管理
  19. 电力逆变器中的二极管作用
  20. Cisco Packet Tracer 思科常用命令

热门文章

  1. tcpdump输出内容分析
  2. PowerShell入门简介
  3. .net中使用ckeditor4+ckfinder上传图片
  4. Web网站模板-健身房宣传响应式网站模板(HTML+CSS+JavaScript)
  5. 自主导航与路径规划无人机研究现状
  6. Java面向对象游戏-黑熊怪变成武大郎吃唐僧 --如何方法继承 重写
  7. 如何优化前端页面的LCP?
  8. html 文字竖排效果
  9. 初装vs2010旗舰版 遇到的错误
  10. ctfshow web入门(一) 已完结