0.0.9 • Published 4 months ago
react-flip-timer v0.0.9
React Flip Clock
一个基于 React 的翻牌时钟组件,支持倒计时和正计时功能,具有丰富的自定义选项。
特性
- 🎯 支持倒计时和时钟模式
- 🎨 可自定义主题和大小
- ⚡️ 流畅的翻牌动画
- 🌗 支持暗色模式和主题自定义
- 🔧 高度可定制
安装
npm install react-flip-timer
基本用法
import { FlipClock } from 'react-flip-timer';
import "react-flip-timer/dist/index.css";
// 基础时钟
const BasicClock = () => <FlipClock />;
// 倒计时
const CountdownClock = () => <FlipClock deadline="2025-03-09" />;
// 自定义格式
const CustomFormatClock = () => <FlipClock formatter="yyyy年MM月dd日 hh:mm:ss" />;
// 指定主题
const DarkThemeClock = () => <FlipClock theme="dark" />;
const App = () => {
return (
<div className="app">
<BasicClock />
<CountdownClock />
<CustomFormatClock />
<DarkThemeClock />
</div>
);
};
export default App;
API
Props
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
formatter | 时间格式化模板 | string | "hh:mm:ss" |
size | 组件大小 | "large" | "middle" | "small" | string | "middle" |
theme | 主题颜色 | "auto" | "dark" | "light" | "auto" |
deadline | 目标时间 | string | Date | - |
onDeadline | 倒计时变化时的回调函数 | (rest: number) => void | - |
continueAfterDeadline | 是否在到达目标时间后继续计时 | boolean | false |
separator | 分隔符,用于分割多行显示 | string | - |
title | 标题文本或标题生成函数 | string | (currentTime: number, restTime: number) => string | - |
ratio | 数字宽高比 | number | 0.66 |
主题配置
组件提供了三种主题模式:
"auto"
: 自动跟随系统主题(默认)"dark"
: 强制使用暗色主题"light"
: 强制使用亮色主题
主题颜色定义:
- 暗色主题:背景色
#333
,文字颜色#fff
- 亮色主题:背景色
#efefef
,文字颜色#333
formatter 格式说明
支持以下占位符:
倒计时模式 (设置了 deadline,不区分大小写):
d
: 天数h
: 小时m
|i
: 分钟s
: 秒数
时钟模式 (区分大小写):
Y
|y
: 年M
: 月D
|d
: 日h
|H
: 小时m
|i
|I
: 分钟s
|S
: 秒数
注意:如果需要在格式化字符串中使用这些字母作为普通文本,请在前面添加反斜杠 \
。
使用示例
1. 带标题的时钟
<FlipClock title="当前时间" />
2. 动态标题
<FlipClock
deadline="2026-01-01"
title={(current, rest) => rest > 0 ? '倒计时' : '新年快乐!'}
/>
3. 多行显示
<FlipClock formatter="YY年MM月DD日|hh时mm分ss秒" separator="|" />
4. 自定义主题和大小
<FlipClock
theme="dark"
size="large"
title="深色大号时钟"
/>
5. 自定义尺寸和比例
<FlipClock
size="120px"
ratio={0.8}
title="自定义尺寸"
/>
注意事项
- 当使用倒计时功能时,需要设置
deadline
属性 size
属性除了预设值外,还支持自定义 CSS 尺寸值(如:"100px")- 主题颜色支持三种模式:
auto
: 自动适应系统暗色模式dark
: 强制使用暗色主题light
: 强制使用亮色主题
ratio
属性用于调整数字的宽高比,建议保持在 0.6-1.0 之间continueAfterDeadline
设置为true
时,倒计时结束后会继续计时
License
MIT