当前位置: 首页 > wzjs >正文

微信做公司网站怎么做百度公司销售卖什么的

微信做公司网站怎么做,百度公司销售卖什么的,阿里云可以做网站,如何做自动采集视频网站源码文章目录 前言一、项目概述二、页面设计与样式三、功能实现模拟时钟秒表计时器倒计时器实现代码 四、优化界面五、使用体验结语 前言 在现代生活中,计时工具无处不在,从厨房烹饪到体育比赛,再到日常任务管理,它们都是不可或缺的帮…

文章目录

  • 前言
  • 一、项目概述
  • 二、页面设计与样式
  • 三、功能实现
    • 模拟时钟
    • 秒表计时器
    • 倒计时器
    • 实现代码
  • 四、优化界面
  • 五、使用体验
  • 结语


前言

在现代生活中,计时工具无处不在,从厨房烹饪到体育比赛,再到日常任务管理,它们都是不可或缺的帮手。今天,我将向大家介绍一个网页版的多功能计时工具,它集模拟时钟、秒表和倒计时器于一体,方便实用,且无需安装任何额外软件。

在webstorm中新建与运行这个项目。

一、项目概述

这个多功能计时工具是一个简单的HTML页面,包含CSS样式和JavaScript脚本。它提供了三个主要功能:

  • 模拟时钟:一个动态的、实时更新的模拟时钟,显示当前的小时、分钟和秒。
  • 秒表计时器:一个可以启动、暂停和重置的秒表,用于精确计时。
  • 倒计时器:用户可以输入分钟数,然后启动倒计时,倒计时结束后会弹出提示。

二、页面设计与样式

页面整体采用简洁明快的设计风格,背景色为浅灰色,每个计时工具模块都有白色背景和圆角边框,看起来既干净又现代。模拟时钟位于页面顶部,秒表和倒计时器紧随其后,每个模块都有清晰的标题和易于操作的按钮。

CSS样式不仅确保了页面的美观,还通过flex布局实现了模块之间的灵活排列和间距控制。按钮的悬停效果增加了用户交互的愉悦感。

在这里插入图片描述

三、功能实现

模拟时钟

模拟时钟使用JavaScript的Date对象获取当前时间,并计算出时针、分针和秒针的角度。通过CSS的transform属性,将指针旋转到正确的位置。每秒更新一次,确保时钟的实时性。

秒表计时器

秒表功能通过setInterval函数每秒更新一次显示的时间。当用户点击“开始”按钮时,计时开始;点击“暂停”按钮时,计时停止;点击“重置”按钮时,计时归零。时间格式采用HH:MM:SS。

倒计时器

倒计时器允许用户输入分钟数,然后开始倒计时。倒计时每秒更新一次,当时间到达零时,弹出提示框通知用户。倒计时器的开始和重置操作与秒表类似,但时间计算方式有所不同。

实现代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>多功能计时工具</title><style>/* 通用样式 */body {font-family: 'Arial', sans-serif;background: #f5f7fa;display: flex;flex-wrap: wrap;gap: 20px;justify-content: center;padding: 20px;margin: 0;}.module {width: 300px;background: #ffffff;border-radius: 12px;box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);padding: 20px;box-sizing: border-box;text-align: center;}.module h2 {margin-top: 0;color: #333333;}/* 时钟模块 */#analog-clock {width: 200px;height: 200px;border: 2px solid #333333;border-radius: 50%;margin: 20px auto;position: relative;}.hand {position: absolute;transform-origin: bottom center;background: #333333;transition: transform 0.05s ease-in-out;}/* 秒表模块 */.stopwatch, .countdown {background: #28a745;color: #ffffff;}.stopwatch button, .countdown button {background: #218838;border: none;color: #ffffff;padding: 10px 20px;border-radius: 5px;cursor: pointer;margin: 5px;transition: background 0.3s ease;}.stopwatch button:hover, .countdown button:hover {background: #1e7e34;}/* 倒计时模块 */.countdown {background: #dc3545;}.countdown input[type="number"] {width: calc(100% - 40px);padding: 10px;margin: 10px 0;box-sizing: border-box;border: 1px solid #ced4da;border-radius: 5px;}</style>
</head>
<body><!-- 模拟时钟 -->
<div class="module"><h2>模拟时钟</h2><div id="analog-clock"><div id="hour-hand" class="hand"></div><div id="minute-hand" class="hand"></div><div id="second-hand" class="hand"></div></div>
</div>
<!-- 秒表计时器 -->
<div class="module stopwatch"><h2>秒表计时器</h2><div id="stopwatch-display">00:00:00</div><button onclick="startStopwatch()">开始</button><button onclick="pauseStopwatch()">暂停</button><button onclick="resetStopwatch()">重置</button>
</div>
<!-- 倒计时器 -->
<div class="module countdown"><h2>倒计时器</h2><input type="number" id="minutes" placeholder="分钟" min="1"><div id="countdown-display">00:00</div><button onclick="startCountdown()">开始</button><button onclick="resetCountdown()">重置</button>
</div>
<script>// ========== 模拟时钟 ==========function updateClock() {const now = new Date();const hours = now.getHours() % 12;const minutes = now.getMinutes();const seconds = now.getSeconds();// 指针角度计算const hourDeg = (hours * 30) + (minutes * 0.5);const minuteDeg = (minutes * 6) + (seconds * 0.1);const secondDeg = seconds * 6;// 更新指针样式document.getElementById('hour-hand').style.transform = `rotate(${hourDeg}deg)`;document.getElementById('minute-hand').style.transform = `rotate(${minuteDeg}deg)`;document.getElementById('second-hand').style.transform = `rotate(${secondDeg}deg)`;// 指针尺寸const hands = {'hour-hand': { length: '50px', thickness: '4px' },'minute-hand': { length: '70px', thickness: '3px' },'second-hand': { length: '90px', thickness: '2px' }};Object.entries(hands).forEach(([id, style]) => {const hand = document.getElementById(id);hand.style.width = style.thickness;hand.style.height = style.length;hand.style.left = `calc(50% - ${style.thickness}/2)`;hand.style.top = `calc(50% - ${style.length})`;});}setInterval(updateClock, 1000);// ========== 秒表功能 ==========let stopwatchRunning = false;let startTime = 0;let elapsedTime = 0;let timerInterval;function startStopwatch() {if (!stopwatchRunning) {startTime = Date.now() - elapsedTime;timerInterval = setInterval(updateStopwatch, 10);stopwatchRunning = true;}}function pauseStopwatch() {clearInterval(timerInterval);stopwatchRunning = false;}function resetStopwatch() {clearInterval(timerInterval);elapsedTime = 0;document.getElementById('stopwatch-display').textContent = "00:00:00";stopwatchRunning = false;}function updateStopwatch() {elapsedTime = Date.now() - startTime;const formattedTime = new Date(elapsedTime).toISOString().substr(11, 8);document.getElementById('stopwatch-display').textContent = formattedTime;}// ========== 倒计时功能 ==========let countdownInterval;let remainingTime = 0;function startCountdown() {if (!countdownInterval) {const minutes = parseInt(document.getElementById('minutes').value) || 1;remainingTime = minutes * 60 * 1000;countdownInterval = setInterval(() => {remainingTime -= 1000;if (remainingTime <= 0) {clearInterval(countdownInterval);alert('倒计时结束!');}updateCountdownDisplay();}, 1000);}}function resetCountdown() {clearInterval(countdownInterval);countdownInterval = null;remainingTime = 0;updateCountdownDisplay();}function updateCountdownDisplay() {const minutes = Math.floor(remainingTime / 60000);const seconds = Math.floor((remainingTime % 60000) / 1000);document.getElementById('countdown-display').textContent =`${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;}
</script>
</body>
</html>

在这里插入图片描述

四、优化界面

优化的核心要点:

  • 布局:整体(左中右)、模块内(标题左上、内容居中)

  • 配色:整体(灰色)、模块内(黑色、蓝色、红色–模块内色系保持一致,使用透明度做对比)、使用渐变修饰

  • 元素:元素位置、大小;元素修饰(圆角、小图标、模块鼠标响应动态)

  • 字号字体:标题加粗,与文本一样字体字号(灰白),输入框与按钮字号小(更白)

经过优化的界面与代码:

在这里插入图片描述
与未经过优化的界面对比:
在这里插入图片描述


<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>多功能计时工具</title><style>/* 基础重置 */* {margin: 0;padding: 0;box-sizing: border-box;}body {font-family: 'Segoe UI', system-ui, sans-serif;background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);min-height: 100vh;padding: 2rem;display: grid;grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));gap: 2rem;place-items: center;}/* 模块统一样式 */.module {background: white;border-radius: 1.5rem;padding: 2rem;box-shadow: 0 10px 30px rgba(0,0,0,0.1);width: 100%;max-width: 400px;transition: transform 0.2s;}.module:hover {transform: translateY(-5px);}h2 {color: #2c3e50;margin-bottom: 1.5rem;font-size: 1.5rem;display: flex;align-items: center;gap: 0.5rem;}/* 模拟时钟 */#analog-clock {width: 200px;height: 200px;border: 4px solid #2c3e50;border-radius: 50%;position: relative;margin: 1rem auto;background: #fff;box-shadow: inset 0 0 15px rgba(0,0,0,0.1);}/* 时钟刻度 */.mark {position: absolute;width: 2px;height: 10px;background: #666;transform-origin: 50% 100px;}.mark-hour {width: 3px;height: 15px;background: #2c3e50;}/* 时钟指针 */.hand {position: absolute;transform-origin: bottom center;border-radius: 4px;transition: transform 0.3s cubic-bezier(0.4, 2.3, 0.3, 1);}#hour-hand {width: 5px;height: 50px;background: #2c3e50;top: 25%;left: calc(50% - 2.5px);}#minute-hand {width: 4px;height: 70px;background: #3498db;top: 15%;left: calc(50% - 2px);}#second-hand {width: 2px;height: 80px;background: #e74c3c;top: 10%;left: calc(50% - 1px);}/* 数字显示 */.digital-display {font-size: 2.5rem;font-family: 'Fira Code', monospace;text-align: center;margin: 1.5rem 0;color: #34495e;letter-spacing: 2px;}/* 按钮样式 */.btn-group {display: flex;gap: 0.8rem;flex-wrap: wrap;justify-content: center;}button {padding: 0.8rem 1.5rem;border: none;border-radius: 0.8rem;cursor: pointer;font-weight: 600;transition: all 0.2s;display: flex;align-items: center;gap: 0.5rem;}button:hover {filter: brightness(1.1);transform: scale(1.05);}button:active {transform: scale(0.95);}/* 秒表模块 */.stopwatch {background: linear-gradient(135deg, #3498db, #2980b9);color: white;}/* 倒计时模块 */.countdown {background: linear-gradient(135deg, #e74c3c, #c0392b);color: white;}input[type="number"] {padding: 0.8rem;border: 2px solid rgba(255,255,255,0.3);border-radius: 0.8rem;background: rgba(255,255,255,0.1);color: white;font-size: 1rem;width: 100%;margin: 1rem 0;backdrop-filter: blur(5px);}input::placeholder {color: rgba(255,255,255,0.7);}/* 时钟刻度生成 */.mark-container {position: absolute;width: 100%;height: 100%;}</style>
</head>
<body><!-- 模拟时钟 -->
<div class="module"><h2>模拟时钟</h2><div id="analog-clock"><div id="hour-hand" class="hand"></div><div id="minute-hand" class="hand"></div><div id="second-hand" class="hand"></div></div>
</div>
<!-- 秒表计时器 -->
<div class="module stopwatch"><h2>秒表计时器</h2><div id="stopwatch-display">00:00:00</div><button onclick="startStopwatch()">开始</button><button onclick="pauseStopwatch()">暂停</button><button onclick="resetStopwatch()">重置</button>
</div>
<!-- 倒计时器 -->
<div class="module countdown"><h2>倒计时器</h2><input type="number" id="minutes" placeholder="分钟" min="1"><div id="countdown-display">00:00</div><button onclick="startCountdown()">开始</button><button onclick="resetCountdown()">重置</button>
</div>
<script>// ========== 模拟时钟 ==========function updateClock() {const now = new Date();const hours = now.getHours() % 12;const minutes = now.getMinutes();const seconds = now.getSeconds();// 指针角度计算const hourDeg = (hours * 30) + (minutes * 0.5);const minuteDeg = (minutes * 6) + (seconds * 0.1);const secondDeg = seconds * 6;// 更新指针样式document.getElementById('hour-hand').style.transform = `rotate(${hourDeg}deg)`;document.getElementById('minute-hand').style.transform = `rotate(${minuteDeg}deg)`;document.getElementById('second-hand').style.transform = `rotate(${secondDeg}deg)`;// 指针尺寸const hands = {'hour-hand': { length: '50px', thickness: '4px' },'minute-hand': { length: '70px', thickness: '3px' },'second-hand': { length: '90px', thickness: '2px' }};Object.entries(hands).forEach(([id, style]) => {const hand = document.getElementById(id);hand.style.width = style.thickness;hand.style.height = style.length;hand.style.left = `calc(50% - ${style.thickness}/2)`;hand.style.top = `calc(50% - ${style.length})`;});}setInterval(updateClock, 1000);// ========== 秒表功能 ==========let stopwatchRunning = false;let startTime = 0;let elapsedTime = 0;let timerInterval;function startStopwatch() {if (!stopwatchRunning) {startTime = Date.now() - elapsedTime;timerInterval = setInterval(updateStopwatch, 10);stopwatchRunning = true;}}function pauseStopwatch() {clearInterval(timerInterval);stopwatchRunning = false;}function resetStopwatch() {clearInterval(timerInterval);elapsedTime = 0;document.getElementById('stopwatch-display').textContent = "00:00:00";stopwatchRunning = false;}function updateStopwatch() {elapsedTime = Date.now() - startTime;const formattedTime = new Date(elapsedTime).toISOString().substr(11, 8);document.getElementById('stopwatch-display').textContent = formattedTime;}// ========== 倒计时功能 ==========let countdownInterval;let remainingTime = 0;function startCountdown() {if (!countdownInterval) {const minutes = parseInt(document.getElementById('minutes').value) || 1;remainingTime = minutes * 60 * 1000;countdownInterval = setInterval(() => {remainingTime -= 1000;if (remainingTime <= 0) {clearInterval(countdownInterval);alert('倒计时结束!');}updateCountdownDisplay();}, 1000);}}function resetCountdown() {clearInterval(countdownInterval);countdownInterval = null;remainingTime = 0;updateCountdownDisplay();}function updateCountdownDisplay() {const minutes = Math.floor(remainingTime / 60000);const seconds = Math.floor((remainingTime % 60000) / 1000);document.getElementById('countdown-display').textContent =`${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;}
</script>
</body>
</html>
在这里插入代码片

五、使用体验

这个多功能计时工具的使用体验非常流畅。模拟时钟的指针平滑移动,秒表和倒计时器的响应迅速且准确。用户界面的设计直观易懂,即使是初次使用的用户也能快速上手。

结语

这个网页版的多功能计时工具是一个结合了模拟时钟、秒表和倒计时器的实用小工具。它不仅功能全面,而且设计简洁美观,非常适合在日常学习、工作或娱乐中使用。如果你需要一个方便易用的计时工具,不妨试试这个网页版的多功能计时工具吧!

你可以直接将上述代码复制到一个HTML文件中,然后在浏览器中打开,就能立即体验这个多功能计时工具带来的便利了。希望你喜欢这个小项目!

http://www.dtcms.com/wzjs/73023.html

相关文章:

  • 外贸seo是什么意思啊百度一键优化
  • 学做宝宝衣服的网站游戏推广怎么快速拉人
  • 网站三合一建设做一个个人网站
  • 编程 毕业设计代做网站发布软文的平台有哪些
  • 山东东平建设工程招标网站seo的基本工作内容
  • 网站百度收录查询东莞网络公司电话
  • 设计官网页面需要多少钱天津外贸seo推广
  • 哪里有网站制作设计google官方入口
  • 重庆南岸营销型网站建设公司哪家专业企业站seo报价
  • wordpress对联147seo工具
  • wordpress qq聊天网站站内关键词优化
  • 网页编辑的软件工具包括兰州网络seo公司
  • 专业制作网站 郑免费二级域名查询网站
  • 西安SEO网站建设网站优化seo培训
  • 惠州品牌网站建设价格网站软文推广网站
  • wordpress 显示页面长春seo公司哪家好
  • 网站需要怎么做如何优化标题关键词
  • 傻瓜做网站用什么软件浏览器网站进入口
  • 淘宝联盟怎么自己做网站抖音指数查询
  • 南充网站制作百度网站排名怎么提高
  • 南宁网页设计培训学校广东seo推广公司
  • 网页升级访问中每天正常更新中seo推广策划
  • 用织梦做领券网站百度网站名称
  • 山西省城乡住房和建设厅网站首页站长工具是干嘛的
  • 做网站用什么软件最好百度投诉电话人工客服24小时
  • 建外做网站的公司网站广告调词软件
  • 永康网站建设李江seo
  • 大连做网站优化价格推广恶意点击软件怎样使用
  • dw网站怎么做搜索推广网络广告
  • 北京营销型网站建设培训seo分析工具有哪些