码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 简单钟表动画


    目录

    需求

    思路分析和代码实现

    实现效果


    需求

    经过三四天的奋战,做的需求都提测了,现在小歇一下。写个钟表CSS动画玩玩。

    没有素材,所以做出来的都是示意。如果需要,可以添加个钟表的背景图片。此外,由于思路类似,我只做了时针和秒针。

    思路分析和代码实现

    其实要实现这个很简单。放一个div作为容器,类名是container,并为它开启相对定位。以秒针为例,在container中放一个容器second,作为秒针的容器。再在second中放置一个pointer,作为真正的秒针。

    这个地方我是这样设计的:second作为一个正方形容器,在container中居中显示;pointer作为一个细长的指针,居于正方形的上半部分的正中间,这样,指针的顶端就是正方形的上边界,指针的底端就是正方形的及核心。这样,使用动画旋转的时候,可以以正方形的中心去旋转second,而旋转的中心就是指针的底端!

    我觉得这样可以抛弃直接旋转指针的思路。其实,直接旋转指针也是可以的,只是要把旋转的中心改成指针的底端,效果一样的。

    这样一来,定义了keyframes,在秒针和时针上设置不同的用时,就可以了。

    有了思路,直接写代码:

    html部分

    1. <div class="container">
    2. <div class="hour">
    3. <div class="pointer">div>
    4. div>
    5. <div class="second">
    6. <div class="pointer">div>
    7. div>
    8. div>

    css部分

    1. * {
    2. margin: 0;
    3. padding: 0;
    4. }
    5. .container {
    6. width: 300px;
    7. height: 300px;
    8. background-color: antiquewhite;
    9. border-radius: 50%;
    10. margin: auto;
    11. margin-top: 200px;
    12. position: relative;
    13. }
    14. .hour,.second {
    15. position: absolute;
    16. top: 0;
    17. left: 0;
    18. right: 0;
    19. bottom: 0;
    20. margin: auto;
    21. }
    22. .hour{
    23. width: 200px;
    24. height: 200px;
    25. animation: pointerAnimation 3600s linear infinite normal both;
    26. }
    27. .second{
    28. width: 300px;
    29. height: 300px;
    30. animation: pointerAnimation 60s linear infinite normal both;
    31. }
    32. .hour .pointer{
    33. width: 2px;
    34. height: 100px;
    35. background-color: white;
    36. position: absolute;
    37. top: 0;
    38. left: 50%;
    39. transform: translateX(-50%);
    40. }
    41. .second .pointer{
    42. width: 2px;
    43. height: 150px;
    44. background-color: yellow;
    45. position: absolute;
    46. top: 0;
    47. left: 50%;
    48. transform: translateX(-50%);
    49. }
    50. @keyframes pointerAnimation{
    51. from{
    52. transform: rotateZ(0);
    53. }
    54. to{
    55. transform: rotateZ(360deg);
    56. }
    57. }

    实现效果

    效果过于简单,我就不放动图了。。。甚至都没什么好总结的哈哈哈。

    提示文章质量不佳!

  • 相关阅读:
    vue中父组件给子组件传递了参数后,什么时候确保子组件中收到的参数更新了
    多旋翼无人机仿真 rotors_simulator:基于PID控制器的位置控制
    c++ STL:关于 std::vector 的移除删除函数remove()和erase()的使用
    【2023最新版】腾讯云CODING平台使用教程(Pycharm/命令:本地项目推送到CODING)
    猿创征文 | 【IoT开发工具箱】Postman模拟https请求
    SpringBoot搭建OAuth2
    springmvc 全局异常处理器配置的三种方式&深入底层源码分析原理
    linux-ubuntu-16.04 安装系统、安装 SSH 服务、设置root用户密码
    三、数学建模之非线性规划
    R语言:在R中使用SQL
  • 原文地址:https://blog.csdn.net/weixin_45792464/article/details/126164099
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号