uniapp 时钟

<template><view class="clock-view"><view class="clock-container u-m-b-66"><!-- 表盘背景 --><view class="clock-face"></view><!-- 时针 --><view class="hand hour-hand" :style="{ transform: `rotate(${hourDeg}deg)` }"><view class="hand-inner hour-inner"></view></view><!-- 分针 --><view class="hand minute-hand" :style="{ transform: `rotate(${minuteDeg}deg)` }"><view class="hand-inner minute-inner"></view></view><!-- 秒针 --><view class="hand second-hand" :style="{ transform: `rotate(${secondDeg}deg)` }"><view class="hand-inner second-inner"></view></view><!-- 中心圆点 --><view class="center-dot"></view></view><view class="time-font u-text-center time-text u-m-b-30 w-s-color-f u-f-52">{{ formattedDate }}</view><view class="time-font u-text-center time-text w-s-color-f u-f-52">{{ formattedTime }}</view></view>
</template>
<script>
export default {data() {return {hourDeg: 0,minuteDeg: 0,secondDeg: 0,timer: null,timerText: null,formattedDate: '',formattedTime: '',};},onLoad() {this.updateTime();this.startTimer();this.timer = setInterval(() => this.updateTime(), 1000);},onUnload() {this.stopTimer();// 屏保页面卸载时停止监听clearInterval(this.timer);},onHide() {// 页面隐藏时停止计时器节省资源this.stopTimer();clearInterval(this.timer);},methods: {updateTime() {const now = new Date();const hours = now.getHours() % 12;const minutes = now.getMinutes();const seconds = now.getSeconds();this.secondDeg = seconds * 6;this.minuteDeg = minutes * 6 + seconds * 0.1;this.hourDeg = hours * 30 + minutes * 0.5;},updateDisplay() {const now = new Date();// 格式化日期部分const year = now.getFullYear();const month = String(now.getMonth() + 1).padStart(2, '0');const day = String(now.getDate()).padStart(2, '0');// 格式化时间部分const hour = String(now.getHours()).padStart(2, '0');const minute = String(now.getMinutes()).padStart(2, '0');const second = String(now.getSeconds()).padStart(2, '0');// 更新显示this.formattedDate = `${year}-${month}-${day}`;this.formattedTime = `${hour}:${minute}:${second}`;},startTimer() {// 立即更新一次避免延迟this.updateDisplay();this.timerText = setInterval(() => {this.updateDisplay();}, 1000);},stopTimer() {if (this.timerText) {clearInterval(this.timerText);this.timerText = null;}}}
};
</script>

<style>page{background: rgba(0, 0, 0, 0.81);}
</style>
<style scoped lang="scss">
.clock-view {width: 100vw;height: 100vh;background: rgba(0, 0, 0, 0.81)// 容器.clock-container {position: relative;width: 640rpx;height: 640rpx;margin: 0 auto;border-radius: 50%;transform-origin: center center;background-image: url('@/static/icon/8.png');background-repeat: no-repeat;background-size: 100% 100%;// 表盘背景.clock-face {width: 100%;height: 100%;border-radius: 50%;}// 指针外层容器.hand {position: absolute;left: 50%;bottom: 50%;transform-origin: bottom center;border-radius: 50%;// 指针阴影效果filter: drop-shadow(0 0 4px rgba(51, 51, 51, 0.15));// 指针内层 - 中心粗两头细.hand-inner {width: 100%;height: 100%;background: currentColor;// 调整为类似参考图的梯形,宽端朝内(连接中心),窄端朝外clip-path: polygon(40% 0, 60% 0, 100% 100%, 0% 100%);// 添加渐变立体感&::before {content: '';position: absolute;top: 0;left: 0;right: 0;bottom: 0;background: linear-gradient(90deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.1) 25%, rgba(0, 0, 0, 0.1) 75%, rgba(0, 0, 0, 0.2) 100%);clip-path: polygon(40% 0, 60% 0, 100% 100%, 0% 100%);pointer-events: none;}}}// 时针.hour-hand {width: 24rpx; // 调整宽度,模拟参考图时针粗细height: 22%; // 调整长度,按需微调margin-left: -(24rpx / 2);color: #2f3031; // 黑色,匹配参考图// 时针阴影可以稍淡filter: drop-shadow(0 0 3px rgba(51, 51, 51, 0.15));}// 分针.minute-hand {width: 18rpx; // 调整宽度,模拟参考图分针粗细height: 30%; // 调整长度,按需微调margin-left: -(18rpx / 2);color: #2f3031; // 黑色,匹配参考图filter: drop-shadow(0 0 4px rgba(51, 51, 51, 0.15));}// 秒针.second-hand {width: 10rpx; // 调整宽度,模拟参考图秒针粗细height: 34%; // 调整长度,按需微调margin-left: -(10rpx / 2);color: #aa2c2d; // 黑色,匹配参考图.hand-inner {&::before {background: linear-gradient(90deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.15) 25%, rgba(0, 0, 0, 0.15) 75%, rgba(0, 0, 0, 0.3) 100%);}}filter: drop-shadow(0 0 4px rgba(51, 51, 51, 0.15));}// 中心圆点.center-dot {position: absolute;left: 50%;top: 50%;width: 20rpx;height: 20rpx;margin-left: -(20rpx / 2);margin-top: -(20rpx / 2);background: #fff;border-radius: 50%;z-index: 10;}}.time-text {letter-spacing: 14rpx;}
}
</style>

 一部分样式用到了uview1.0中的,下面是背景图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/83543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大模型】实践之1:macOS一键部署本地大模型

Ollama + Open WebUI 自动部署脚本解析说明文档 先看下效果 一、脚本内容 #!/bin/bash set -eMODEL_NAME="qwen:1.8b" LOG_FILE="ollama_run.log" WEBUI_PORT=3000 WEBUI_CONTAINER_PORT=8080 WEBUI_URL="http://localhost:$WEBUI_PORT" DOC…

相机Camera日志实例分析之三:相机Camx【视频光斑人像录制】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…

介绍一下 TCP方式程序的通讯,服务器机与客户机

TCP通信方式&#xff1a;服务器与客户机通信详解 TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。下面我将详细介绍TCP方式下服务器与客户机的通信过程。 基本概念 TCP特点&#xff1a; 面向连接&#xff1a;通信前需建立连接可靠传输&#xff1a;…

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…

【PyTorch】2024保姆级安装教程-Python-(CPU+GPU详细完整版)-

一、准备工作 pytorch需要python3.6及以上的python版本 我是利用Anaconda来管理我的python。可自行安装Anaconda。 Anaconda官网 Free Download | Anaconda 具体Anaconda安装教程可参考 https://blog.csdn.net/weixin_43412762/article/details/129599741?fromshareblogdet…

Oracle RAC私网网卡冗余

第一步&#xff1a;添加网卡&#xff08;网络部门实施&#xff09; 第二步&#xff1a;给新网卡配置ip地址&#xff08;如果网络部门没有配置&#xff0c;要自己动手配置&#xff09; 第三步&#xff1a;查看心跳网络配置 –1 su - grid oifcfg getif enp0s3 192.168.1.0 glo…

c#,Powershell,mmsys.cpl,使用Win32 API展示音频设备属性对话框

常识&#xff08;基础&#xff09; 众所周知&#xff0c;mmsys.cpl使管理音频设备的控制面板小工具&#xff0c; 其能产生一个对话框&#xff08;属性表&#xff09;让我们查看和修改各设备的详细属性&#xff1a; 在音量合成器中单击音频输出设备的小图标也能实现这个效果&a…

织梦dedecms内容页调用seotitle标题的写法

首先方法一&#xff0c;直接用织梦的sql实现&#xff1a; <title> {dede:field nametypeid runphpyes} $idme; global $dsql; $sql"select seotitle from dede_arctype where id$id"; $row$dsql->getOne($sql); me$row["seotitle"]; {/dede:fiel…

linux等保思路与例题

例题 最近在做玄机的靶场&#xff0c;对这方面没怎么接触过&#xff0c;于是决定做一下顺便学习一下 这里可以用change更改命令来查看&#xff1a;change -l xiaoming 也可以用shadow中存储的信息grep出来&#xff1a;cat /etc/shadow|grep xiaoming 其中&#xff1a; 第一个字…

AirSim中文文档(2025-6-11)

文档的git链接&#xff1a; https://github.com/yolo-hyl/airsim-zh-docs 目前可访问的网站&#xff1a; https://airsim.huayezuishuai.site/

​​​​​​​6板块公共数据典型应用场景【政务服务|公共安全|公共卫生|环境保护|金融风控|教育科研]

1. 政务服务 1.1 城市规划与管理 公共数据在城市规划与管理中可发挥关键作用。通过汇聚自然资源、建筑物、人口分布等基础数据,构建数字孪生城市模型,辅助城市总体规划编制、决策仿真模拟。在城市基础设施建设、安全运营、应急管理等方面,公共数据也是不可或缺的基础支撑。例…

LevelDB介绍和内部机制

介绍 LevelDB 是 Google 开源的高性能键值对嵌入式数据库&#xff0c;具有一系列设计上的优势&#xff0c;特别适合写多读少、对存储空间要求高效的场景。 核心优势 1. 高写入性能&#xff08;顺序写磁盘&#xff09; 基于 LSM-Tree&#xff08;Log Structured Merge Tree&am…

数据库-数据查询-Like

引言 &#xff1c;模糊沟通&#xff1e; 父亲&#xff08;45岁&#xff0c;对外谦和&#xff0c;对内急躁&#xff0c;东北口音&#xff09; 儿子&#xff08;18岁&#xff0c;逻辑思维强&#xff0c;喜用生活化比喻&#xff09; 母亲&#xff08;43岁&#xff0c;家庭矛盾调…

SD-WAN优化云应用与多云架构访问的关键策略

1. SD-WAN如何优化企业对公有云和SaaS应用的访问&#xff1f; 1.1 智能流量优化 SD-WAN通过应用识别技术&#xff0c;可以根据不同的业务应用流量需求&#xff0c;动态分配网络资源。例如&#xff0c;SD-WAN能够优先为钉钉、企业微信、金山文档等关键SaaS应用分配低延迟、高带…

JVM——对象模型:JVM对象的内部机制和存在方式是怎样的?

引入 在Java的编程宇宙中&#xff0c;“Everything is object”是最核心的哲学纲领。当我们写下new Book()这样简单的代码时&#xff0c;JVM正在幕后构建一个复杂而精妙的“数据实体”——对象。这个看似普通的对象&#xff0c;实则是JVM内存管理、类型系统和多态机制的基石。…

专题:2025年跨境B2B采购买家行为分析及采购渠道研究报告|附160+份报告PDF汇总下载

原文链接&#xff1a;https://tecdat.cn/?p42612 在商业决策的复杂版图中&#xff0c;数据是穿透迷雾的精准坐标。本报告汇总解读聚焦2024年跨境B2B行业核心动态&#xff0c;以详实数据为锚&#xff0c;串联商品出口、品牌网站运营、独立站流量生态三大关键领域。我们深入挖掘…

使用spring-ai-alibaba接入大模型

spring-ai-alibaba 是Spring AI生态里与阿里巴巴相关的组件&#xff0c;借助它能够实现接入各类大模型。以下为你详细介绍如何使用 spring-ai-alibaba 接入不同大模型&#xff1a; 接入open ai 项目环境准备 首先要创建一个Spring Boot项目&#xff0c;并且在 pom.xml 里添加…

字符串的向量处理技巧:KD树和TF-IDF向量

使用下面的技术&#xff0c;可以构建不用DL的搜索引擎。 向量搜索引擎使用KD-Tree KD-Tree 搭建以字符串向量为索引的树&#xff0c;以 O ( l o g n ) O(logn) O(logn) 的时间复杂度快速查找到最近的向量 代码来源&#xff1a;https://github.com/zhaozh10/ChatCAD/blob/ma…

Modbus TCP 转Canopen网关连接台达伺服驱动器的配置案例

本案例是使用欧姆龙PLC通过开疆智能ModbusTCP转Canopen网关连接台达A2伺服驱动器的配置案例。 配置过程&#xff1a; 首先打开PLC组态软件“Sysmac Studio”&#xff0c;新建项目并进行配置。 编写ModbusTCP的通讯程序。 设置连接的IP地址&#xff0c;端口号等参数。 设置Modb…

Vim Z 开头的视图滚动/折叠命令完整学习笔记

Vim Z 开头的视图滚动/折叠命令完整学习笔记 文章目录 Vim Z 开头的视图滚动/折叠命令完整学习笔记1. 核心概念2. 垂直滚动对齐命令2.1 基础对齐2.2 重画增强版 3. 横向滚动命令3.1 字符级滚动3.2 半屏滚动 4. 代码折叠命令4.1 基础折叠操作4.2 高级折叠操作4.3 全局折叠控制4.…