javascript入门·动态的时钟,显示完整的一些方法,新年倒计时

Javascript入门-动态的时钟

基本思路

实现动态时钟,需要获取当前的时间,根据时分秒分别计算对应的角度,并使用transform指令对时钟的指针进行旋转。

HTML文件

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>动态时钟</title>
    <style>
        body {
            height: 100%;
            display: flex;
            justify-content: center;
            align-items: center;
            background-color: black;
        }
        .clock {
            position: relative;
            width: 400px;
            height: 400px;
            border-radius: 50%;
            background-color: white;
            overflow: hidden;
            display: flex;
        }
        .hour,.minute,.second {
            position: absolute;
            top:50%;
            left:50%;
            width: 15px;
            height: 15px;
            background-color: black;
            border-radius: 50%;
            transform-origin: bottom center;
        }
        .hour {
            width:60px;
        }
        .minute {
            width: 45px;
        }
        .second {
            width:30px;
            z-index: 2;
        }
    </style>
</head>
<body>
    <div class="clock">
        <div class="hour"></div>
        <div class="minute"></div>
        <div class="second"></div>
    </div>
</body>
<script src="js/clock.js"></script>
</html>

Javascript文件

function clock() {
    const secElement = document.querySelector('.second');
    const minElement = document.querySelector('.minute');
    const hrElement = document.querySelector('.hour');

    const curTime = new Date();
    const curSec = curTime.getSeconds() * 6;
    const curMin = curTime.getMinutes() * 6 + (curTime.getSeconds() * 6 / 60);
    const curHr = curTime.getHours() % 12 / 12 * 360 + (curTime.getMinutes() * 30 / 60);

    secElement.style.transform = `rotate(${curSec}deg)`;
    minElement.style.transform = `rotate(${curMin}deg)`;
    hrElement.style.transform = `rotate(${curHr}deg)`;
}
setInterval(clock, 1000);

代码解释

  • 首先我们选用querySelector()方法选取相应的DOM元素,从而可以修改DOM的样式。
  • 获取当前时间使用Date()函数,从中获取分别获取当前的小时,分钟和秒数。
  • 将时、分、秒转成相应的角度,然后使用transform属性给每一个指针加上旋转的效果,根据时分秒,将每个指针按照旋转的角度计算出了需要的transform属性值。
  • 使用setInterval()方法,每间隔1秒钟更新一下钟表指针的位置,从而实现动态闪烁效果。

示例一

这是一个网页时钟,每个指针并不会每一秒都转动,而是有一个平滑的运动过程,比较美观。

示例二

代码中我们使用了绝对定位将指针固定到特定的位置,这种方式可以让指针相对于时钟中心不动,从而实现不同样式的指针,使用的方法值得学习。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript入门·动态的时钟,显示完整的一些方法,新年倒计时 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • javascript中日期转换成时间戳的小例子

    JavaScript的日期对象提供了各种操作日期和时间的方法。在JavaScript中将日期转换成时间戳(以毫秒为单位)非常简单,只需要用Date对象的getTime()方法即可。以下是用JavaScript将日期转换为时间戳的小例子: const date = new Date(‘2021-08-01’); const timeStamp = date.g…

    JavaScript 2023年5月27日
    00
  • JavaScript 数组常见操作技巧 (二)

    下文将为您详细讲解“JavaScript 数组常见操作技巧 (二)”的完整攻略。 一、Array.prototype.map() map()方法将数组中的每个元素映射为一个新的元素,最终返回一个映射后的新数组,并不会影响原数组的元素。该方法接收一个回调函数作为参数,回调函数接受三个参数(当前元素的值,当前元素的索引和原数组),并返回一个新值。 下面是一个示例…

    JavaScript 2023年6月10日
    00
  • 轻松理解Javascript变量的相关问题

    轻松理解JavaScript变量的相关问题 JavaScript中的变量是用来存储数据的。但是在JavaScript中,变量有很多相关的问题,这些问题可能会困扰初学者。在本文中,我将详细讲解以下问题: JavaScript中的变量类型有哪些? 如何声明和赋值变量? JavaScript中的作用域是什么? 变量的生命周期是什么? 如何避免变量名冲突? 变量类型…

    JavaScript 2023年5月19日
    00
  • 从原生JavaScript到React深入理解

    从原生JavaScript到React深入理解攻略 React是现在前端开发中非常流行的一种框架,很多前端工程师都想学习这个框架。但是,如果你没有掌握原生JavaScript的基础,就很难对React有深入理解。因此,我们需要先从原生JavaScript入手,然后逐渐深入学习React。 1. 学习原生JavaScript 1.1 理解DOM DOM是Doc…

    JavaScript 2023年6月10日
    00
  • js 创建对象的多种方式与优缺点小结

    关于 “JS 创建对象的多种方式与优缺点小结”,我们可以从以下几个方面来进行讲解: 1. 对象字面量创建对象 对象字面量是一种创建对象的简单方式,只需要用{}包含属性和方法即可。示例代码如下: var person = { name: "Tom", age: 20, sayHi: function() { console.log(&quo…

    JavaScript 2023年5月27日
    00
  • JAVASCRIPT 实现普通日期转换多少小时前、多少分钟前、多少秒

    为了将普通日期转换为多少小时前、多少分钟前、多少秒之前,我们可以使用JavaScript中的Date对象和一些基本的数学运算。 首先,需要获取当前时间和要转换的日期时间,可以使用Date.now()获取当前的时间戳,使用new Date()获取要转换的日期时间。 let now = Date.now(); let date = new Date(‘2022-…

    JavaScript 2023年5月27日
    00
  • 详解javascript表单的Ajax提交插件的使用

    详解Javascript表单的Ajax提交插件的使用 1. AJAX 是什么? AJAX 即 Asynchronous Javascript And XML (异步 JavaScript 和 XML)。在不重新加载整个页面的情况下,可以通过 AJAX 在后台与服务器进行数据交互。使用 AJAX,可以实现异步加载数据,提高用户体验。 2. 表单提交流程 在传统…

    JavaScript 2023年6月11日
    00
  • JavaScript截取指定长度字符串点击可以展开全部代码

    下面是详细讲解“JavaScript截取指定长度字符串点击可以展开全部代码”的完整攻略。 1. 需求分析 在网页上展示代码时,为了节约页面空间,通常需要对代码进行截取,只显示部分内容。但是,当用户需要查看完整的代码时,需要提供一个展开全文的功能。因此,我们需要使用JavaScript截取指定长度的字符串,并且在用户点击时展开全部字符串。 2. 解决方案 2.…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部