Skip to content

Commit af8f741

Browse files
committed
feat: move dot
1 parent 6fcb2d1 commit af8f741

3 files changed

Lines changed: 71 additions & 0 deletions

File tree

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import React, { useEffect, useState } from 'react'
2+
3+
const NumberViewCard = () => {
4+
return (
5+
<div className="flex items-center justify-start">
6+
<div
7+
className="relative h-[150px] w-[360px] rounded-lg p-1"
8+
style={{
9+
backgroundImage: `radial-gradient(circle 230px at 0% 0%, #ffffff, #0c0d0d)`,
10+
}}
11+
>
12+
<div className="animate-move-dot absolute top-[10%] right-[10%] z-20 h-2 w-2 rounded-full bg-white shadow-md"></div>
13+
14+
<div className="bg-gradient-radial relative z-10 flex h-full w-full flex-col items-center justify-center rounded-lg from-gray-600 to-gray-900">
15+
<div className="absolute top-0 left-0 h-[45px] w-[220px] origin-left rotate-[40deg] transform rounded-full bg-neutral-300 opacity-40 shadow-[0_0_50px_#ffffff] blur-md"></div>
16+
17+
<div className="bg-gradient-to-r from-black via-white to-black bg-clip-text text-6xl font-extrabold text-transparent">
18+
750k
19+
</div>
20+
<div className="text-lg text-white">浏览量</div>
21+
22+
<div className="absolute top-[10%] h-[1px] w-full bg-gradient-to-r from-neutral-400 to-neutral-700"></div>
23+
<div className="absolute bottom-[10%] h-[1px] w-full bg-neutral-700"></div>
24+
<div className="absolute left-[10%] h-full w-[1px] bg-gradient-to-b from-neutral-400 to-neutral-700"></div>
25+
<div className="absolute right-[10%] h-full w-[1px] bg-neutral-700"></div>
26+
</div>
27+
</div>
28+
</div>
29+
)
30+
}
31+
32+
export default NumberViewCard

src/pages/home/index.jsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ import BorderBeam from '@stateless/BorderBeam'
6767
import AutoSlider from '@stateless/AutoSlider'
6868
import AnimText from '@stateless/AnimText'
6969
import SlideButton from '@stateless/SlideButton'
70+
import NumberViewCard from '@stateless/NumberViewCard'
7071
import firstImage from '@assets/images/88-300x160.jpg'
7172
import secondImage from '@assets/images/2-300x160.jpg'
7273
import SpringPng from '@assets/images/spring.png'
@@ -418,6 +419,15 @@ const Home = () => {
418419
>
419420
<IconCloud images={images} />
420421
</section>
422+
<section
423+
style={{
424+
marginBottom: 15,
425+
position: 'relative',
426+
overflow: 'hidden',
427+
}}
428+
>
429+
<NumberViewCard />
430+
</section>
421431
<section
422432
style={{
423433
marginBottom: 15,

src/styles/reset.css

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,35 @@
108108
rotate(calc(var(--angle) * -1deg - 1turn));
109109
}
110110
}
111+
112+
--animate-move-dot: move-dot 6s linear infinite;
113+
114+
@keyframes move-dot {
115+
0% {
116+
top: 10%;
117+
right: 10%;
118+
}
119+
120+
25% {
121+
top: 10%;
122+
right: calc(100% - 40px);
123+
}
124+
125+
50% {
126+
top: calc(100% - 23px);
127+
right: calc(100% - 45px);
128+
}
129+
130+
75% {
131+
top: calc(100% - 23px);
132+
right: 10%;
133+
}
134+
135+
100% {
136+
top: 10%;
137+
right: 10%;
138+
}
139+
}
111140
}
112141

113142
.hue-clip {

0 commit comments

Comments
 (0)