欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

React實(shí)現(xiàn)翻頁(yè)時(shí)鐘的代碼示例

 更新時(shí)間:2023年08月27日 09:32:28   作者:Kakarotto  
本文給大家介紹了React實(shí)現(xiàn)翻頁(yè)時(shí)鐘的代碼示例,翻頁(yè)時(shí)鐘把數(shù)字分為上下兩部分,翻頁(yè)效果的實(shí)現(xiàn)需要通過(guò)設(shè)置 position 把所有的數(shù)組放在同一個(gè)位置疊加起來(lái),文中有詳細(xì)的代碼講解,需要的朋友可以參考下

1. 布局、樣式、翻頁(yè)動(dòng)畫(huà)

翻頁(yè)時(shí)鐘把數(shù)字分為上下兩部分,翻頁(yè)效果的實(shí)現(xiàn)需要通過(guò)設(shè)置 position 把所有的數(shù)組放在同一個(gè)位置疊加起來(lái)。
翻頁(yè)時(shí)鐘的動(dòng)畫(huà)是當(dāng)前顯示時(shí)間的 up 部分向下翻轉(zhuǎn)至于屏幕垂直的位置,在這個(gè)位置需要顯示的下一個(gè)時(shí)間的 down 部分向下翻轉(zhuǎn),這樣就實(shí)現(xiàn)了翻頁(yè)時(shí)鐘的完整動(dòng)畫(huà)。

HTML 結(jié)構(gòu)如下所示:

<div class="container">
    <ul class="flip">
        <li>
            <div class="up">
                <div class="content">0</div>
            </div>
            <div class="down">
                <div class="content">0</div>
            </div>
        </li>
        <li>
            <div class="up">
                <div class="content">1</div>
            </div>
            <div class="down">
                <div class="content">1</div>
            </div>
        </li>
    </ul>
</div>

CSS 樣式

.container {
	height: 90px;
}
.container .flip {
	position: relative;
	float: left;
	width: 60px;
	height: 100%;
	margin: 0 5px;
}
.flip li {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	font-size: 80px;
	text-align: center;
	line-height: 90px;
	font-weight: bold;
	border-radius: 6px;
	perspective: 200px;
	transform-style: preserve-3d;
}
.flip li:first-child {
	z-index: 2;
}
// 設(shè)置class為up和down的高度為父元素容器的一半高度
.flip li > div {
	position: absolute;
	left: 0;
	height: 50%;
	width: 100%;
	overflow: hidden;
}
.flip .up {
	/* 改變選中軸的位置 使翻轉(zhuǎn)軸位于up、down部分的中間*/
	transform-origin: 0 100%;
	top: 0;
	border-radius: 4px;
}
.flip .down {
	/* 改變選中軸的位置 使翻轉(zhuǎn)軸位于up、down部分的中間 */
	transform-origin: 0 0;
	bottom: 0;
	border-radius: 4px;
}
.flip .content {
	position: absolute;
	width: 100%;
	border-radius: 6px;
	color: #ccc;
	background-color: #333;
	text-shadow: 0 1px 2px #000;
}
.flip .up .content {
	top: 0;
}
.flip .down .content {
	bottom: 0;
}
// 設(shè)置翻頁(yè)折痕
.flip .up::after {
	content: "";
	position: absolute;
	top: 43px;
	left: 0;
	width: 100%;
	height: 4px;
	background-color: rgba(0, 0, 0, 0.4);
}

實(shí)現(xiàn)的3D效果如下:

2. 使用 JS 使動(dòng)畫(huà)持續(xù)翻頁(yè)

完整的翻頁(yè)時(shí)鐘為 00:00:00,需要翻頁(yè)的有 6 個(gè)部分,可以先把翻頁(yè)部分提取出單獨(dú)的組件。

1、準(zhǔn)備數(shù)據(jù)

因?yàn)樾枰獣r(shí)分秒各個(gè)翻頁(yè)部分顯示的數(shù)字范圍不同,所以這里先把數(shù)據(jù)準(zhǔn)備好。

2、封裝翻頁(yè)組件

組件接收兩個(gè)參數(shù):1、當(dāng)前翻頁(yè)類(lèi)型(時(shí)、分、秒); 2、當(dāng)前類(lèi)型時(shí)間。
index 與當(dāng)前類(lèi)型時(shí)間相同時(shí),當(dāng)前元素的 class 為 active,上一個(gè)元素的 class 為 before;如果當(dāng)前元素為第一個(gè)元素,最后一個(gè)元素的class為before。

3、各個(gè)翻頁(yè)組件間的聯(lián)動(dòng)

這里還需要定義一個(gè)對(duì)象,用于翻頁(yè)組件間的聯(lián)動(dòng)關(guān)系的對(duì)應(yīng)。

秒鐘的個(gè)位轉(zhuǎn)完一周后,秒鐘的十位需要進(jìn)行一次翻頁(yè),以此類(lèi)推,直到時(shí)鐘的十位進(jìn)行翻轉(zhuǎn)。實(shí)現(xiàn)方式如下:

源碼地址

https://stackblitz.com/edit/vitejs-vite-ehlf3y?file=src%2FTimeCard.tsx

到此這篇關(guān)于React實(shí)現(xiàn)翻頁(yè)時(shí)鐘的代碼示例的文章就介紹到這了,更多相關(guān)React翻頁(yè)時(shí)鐘內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳細(xì)談?wù)凴eact中setState是一個(gè)宏任務(wù)還是微任務(wù)

    詳細(xì)談?wù)凴eact中setState是一個(gè)宏任務(wù)還是微任務(wù)

    學(xué)過(guò)react的人都知道,setState在react里是一個(gè)很重要的方法,使用它可以更新我們數(shù)據(jù)的狀態(tài),下面這篇文章主要給大家介紹了關(guān)于React中setState是一個(gè)宏任務(wù)還是微任務(wù)的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • react hooks入門(mén)詳細(xì)教程

    react hooks入門(mén)詳細(xì)教程

    這篇文章主要介紹了react hooks入門(mén)詳細(xì)教程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 詳解如何使用React和MUI創(chuàng)建多選Checkbox樹(shù)組件

    詳解如何使用React和MUI創(chuàng)建多選Checkbox樹(shù)組件

    這篇文章主要為大家詳細(xì)介紹了如何使用 React 和 MUI(Material-UI)庫(kù)來(lái)創(chuàng)建一個(gè)多選 Checkbox 樹(shù)組件,該組件可以用于展示樹(shù)形結(jié)構(gòu)的數(shù)據(jù),并允許用戶選擇多個(gè)節(jié)點(diǎn),感興趣的可以了解下
    2024-01-01
  • React 組件通信的多種方式與最佳實(shí)踐

    React 組件通信的多種方式與最佳實(shí)踐

    在現(xiàn)代前端開(kāi)發(fā)中,組件化是 React 的核心理念之一,組件之間的通信是構(gòu)建復(fù)雜應(yīng)用的重要組成部分,在這篇文章中,我們將深入探討 React 組件通信的多種方式,包括它們的優(yōu)缺點(diǎn)、使用場(chǎng)景以及最佳實(shí)踐,需要的朋友可以參考下
    2024-11-11
  • React函數(shù)式組件的性能優(yōu)化思路詳解

    React函數(shù)式組件的性能優(yōu)化思路詳解

    這篇文章主要介紹了React函數(shù)式組件的性能優(yōu)化思路詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 一起來(lái)學(xué)習(xí)React元素的創(chuàng)建和渲染

    一起來(lái)學(xué)習(xí)React元素的創(chuàng)建和渲染

    這篇文章主要為大家詳細(xì)介紹了React元素的創(chuàng)建和渲染,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • React中使用Axios發(fā)起POST請(qǐng)求提交文件方式

    React中使用Axios發(fā)起POST請(qǐng)求提交文件方式

    這篇文章主要介紹了React中使用Axios發(fā)起POST請(qǐng)求提交文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 解析React中useMemo與useCallback的區(qū)別

    解析React中useMemo與useCallback的區(qū)別

    這篇文章主要介紹了React中useMemo與useCallback的區(qū)別,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • react的hooks的用法詳解

    react的hooks的用法詳解

    這篇文章主要介紹了react的hooks的用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • ReactNative中使用Redux架構(gòu)總結(jié)

    ReactNative中使用Redux架構(gòu)總結(jié)

    本篇文章主要介紹了ReactNative中使用Redux架構(gòu)總結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12

最新評(píng)論