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 RegExp 正则表达式对象详细说明

    JavaScript RegExp 正则表达式对象详细说明 什么是正则表达式 正则表达式是一种用于处理字符串的表达式。它可以通过匹配字符的组合来实现对字符串的模式匹配,验证输入数据的有效性等。 RegExp 构造函数 RegExp 构造函数是用来创建一个 RegExp 对象的。它可以接受两个参数,分别是正则表达式字符串和修饰符字符串。正则表达式字符串用来定义…

    JavaScript 2023年6月10日
    00
  • javascript中内置对象Math的介绍及用法案例

    下面是关于“javascript中内置对象Math的介绍及用法案例”的完整攻略。 什么是Math对象 Math对象是一个内置对象,提供了许多数学上的方法和常数。 常用方法 下面是一些常用的Math对象的方法: Math.abs() Math.abs()方法返回一个给定数字的绝对值。该方法接受一个参数num,可以是任何数字类型,如整数、浮点数或负数。 例如: …

    JavaScript 2023年5月27日
    00
  • js左右弹性滚动对联广告代码分享

    下面是 js 左右弹性滚动对联广告代码分享的攻略: 一、代码实现思路 实现 js 左右弹性滚动对联广告的代码,整体思路如下: 使用 CSS 布局将广告左右对联 使用 JavaScript 监测浏览器窗口大小,以动态设置广告左右对联的位置 实现左右弹性滚动效果,让广告在页面上滑动 下面将分别讲解具体的实现过程。 二、HTML 结构 首先需要在 HTML 文件中…

    JavaScript 2023年6月11日
    00
  • JavaScript控制浏览器全屏显示简单示例

    关于“JavaScript控制浏览器全屏显示简单示例”的攻略,可以按照以下步骤进行: 1. HTML页面中添加按钮 首先,在HTML页面中添加一个按钮,以便在单击该按钮时全屏显示页面。可以使用以下代码: <button onclick="toggleFullScreen()">全屏显示</button> 其中onc…

    JavaScript 2023年6月11日
    00
  • javascript Ajax获取远程url的返回判断

    Javascript Ajax获取远程Url的返回判断通常包括以下几个步骤: 1. 创建XMLHttpRequest对象 var request; if (window.XMLHttpRequest) { // 非IE浏览器 request = new XMLHttpRequest(); } else if (window.ActiveXObject) { …

    JavaScript 2023年6月11日
    00
  • JavaScript利用切片实现大文件断点续传

    下面我将为你详细讲解“JavaScript利用切片实现大文件断点续传”的完整攻略。 什么是大文件断点续传? 大文件断点续传是指在上传或下载大文件时,当中途发生网络异常或操作中断等情况,可以暂停传输并记录已传输的数据,下次继续传输时从中断处开始传输,避免重新传输整个文件。 实现大文件断点续传的原理 大文件断点续传的实现原理是将大文件切分成若干个小部分即“分片”…

    JavaScript 2023年5月27日
    00
  • JavaScript编写推箱子游戏

    下面是JavaScript编写推箱子游戏的完整攻略: 1. 准备工作 编写推箱子游戏前需要准备的工作如下: 确认游戏规则和界面设计; 编写HTML页面,并引入所需的CSS样式; 编写JavaScript脚本文件,并在HTML中引入。 2. 游戏规则 推箱子游戏是一种益智类的游戏,玩家需要将箱子移动到指定位置才能完成游戏。游戏规则如下: 游戏地图上有多个目的地…

    JavaScript 2023年6月11日
    00
  • JS中作用域和变量提升(hoisting)的深入理解

    作用域和变量提升是JavaScript中非常重要的概念。作用域指的是程序中变量的可访问范围,而变量提升意味着变量和函数声明可以在实际声明之前使用。理解这些概念可以帮助开发人员编写更好的JavaScript代码,并帮助他们避免错误。 作用域 JavaScript中有两种作用域:全局作用域和局部作用域。全局作用域的变量在整个程序中都是可访问的,而局部作用域的变量…

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