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
繁體地址,請注明出處:http://hk.pswp.cn/web/83543.shtml
英文地址,請注明出處:http://en.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.…