5858 50% {
5959 transform : scale (1.1 );
6060 }
61+ }
62+
63+ /* 滚动指示器样式 */
64+ .scroll-indicator {
65+ position : absolute;
66+ bottom : 30px ;
67+ left : 50% ;
68+ transform : translateX (-50% );
69+ display : flex;
70+ flex-direction : column;
71+ align-items : center;
72+ gap : 10px ;
73+ cursor : pointer;
74+ z-index : 10 ;
75+ }
76+
77+ .scroll-arrow {
78+ width : 60px ;
79+ height : 60px ;
80+ border : 2px solid rgba (0 , 255 , 159 , 0.6 );
81+ border-radius : 50% ;
82+ display : flex;
83+ align-items : center;
84+ justify-content : center;
85+ position : relative;
86+ transition : all 0.3s ease;
87+ background : rgba (0 , 255 , 159 , 0.05 );
88+ backdrop-filter : blur (10px );
89+ }
90+
91+ .scroll-arrow ::before {
92+ content : '' ;
93+ width : 12px ;
94+ height : 12px ;
95+ border-right : 2px solid # 00ff9f ;
96+ border-bottom : 2px solid # 00ff9f ;
97+ transform : rotate (45deg );
98+ animation : scrollBounce 2s infinite;
99+ }
100+
101+ .scroll-arrow ::after {
102+ content : '' ;
103+ position : absolute;
104+ top : -2px ;
105+ left : -2px ;
106+ right : -2px ;
107+ bottom : -2px ;
108+ border : 2px solid transparent;
109+ border-radius : 50% ;
110+ background : linear-gradient (45deg , # 00ff9f, # 00d4ff );
111+ background-clip : border-box;
112+ -webkit-background-clip : border-box;
113+ mask : linear-gradient (# fff 0 0 ) content-box, linear-gradient (# fff 0 0 );
114+ -webkit-mask : linear-gradient (# fff 0 0 ) content-box, linear-gradient (# fff 0 0 );
115+ mask-composite : exclude;
116+ -webkit-mask-composite : destination-out;
117+ opacity : 0 ;
118+ animation : glowPulse 3s infinite;
119+ }
120+
121+ .scroll-text {
122+ font-size : 14px ;
123+ color : rgba (255 , 255 , 255 , 0.7 );
124+ font-weight : 300 ;
125+ letter-spacing : 1px ;
126+ transition : all 0.4s cubic-bezier (0.4 , 0 , 0.2 , 1 );
127+ transform : scale (1 );
128+ opacity : 0.7 ;
129+ }
130+
131+ /* 鼠标悬停效果 */
132+ .scroll-indicator : hover .scroll-arrow {
133+ border-color : # 00ff9f ;
134+ background : rgba (0 , 255 , 159 , 0.1 );
135+ transform : scale (1.1 );
136+ box-shadow : 0 0 20px rgba (0 , 255 , 159 , 0.3 );
137+ }
138+
139+ .scroll-indicator : hover .scroll-text {
140+ color : # 00ff9f ;
141+ transform : scale (1.2 );
142+ opacity : 1 ;
143+ text-shadow : 0 0 10px rgba (0 , 255 , 159 , 0.5 );
144+ }
145+
146+ /* 滚动时的动态效果 */
147+ .scroll-indicator .scroll-active .scroll-text {
148+ transform : scale (1.5 );
149+ color : # 00ff9f ;
150+ opacity : 1 ;
151+ text-shadow : 0 0 15px rgba (0 , 255 , 159 , 0.7 );
152+ font-weight : 500 ;
153+ }
154+
155+ .scroll-indicator .scroll-active .scroll-arrow {
156+ transform : scale (1.2 );
157+ border-color : # 00ff9f ;
158+ box-shadow : 0 0 30px rgba (0 , 255 , 159 , 0.5 );
159+ }
160+
161+ /* 滚动内容变化时的文字变大效果 */
162+ .scroll-text .content-change {
163+ animation : textZoom 0.6s cubic-bezier (0.25 , 0.46 , 0.45 , 0.94 );
164+ }
165+
166+ @keyframes textZoom {
167+ 0% {
168+ transform : scale (1 );
169+ }
170+ 50% {
171+ transform : scale (1.8 );
172+ color : # ff6b6b ;
173+ text-shadow : 0 0 20px rgba (255 , 107 , 107 , 0.8 );
174+ }
175+ 100% {
176+ transform : scale (1.2 );
177+ color : # 00ff9f ;
178+ text-shadow : 0 0 15px rgba (0 , 255 , 159 , 0.7 );
179+ }
180+ }
181+
182+ @keyframes scrollBounce {
183+ 0% , 20% , 50% , 80% , 100% {
184+ transform : rotate (45deg ) translateY (0 );
185+ }
186+ 40% {
187+ transform : rotate (45deg ) translateY (-3px );
188+ }
189+ 60% {
190+ transform : rotate (45deg ) translateY (-1px );
191+ }
192+ }
193+
194+ @keyframes glowPulse {
195+ 0% , 100% {
196+ opacity : 0 ;
197+ }
198+ 50% {
199+ opacity : 0.8 ;
200+ }
201+ }
202+
203+ /* 移动端适配 */
204+ @media screen and (max-width : 768px ) {
205+ .scroll-indicator {
206+ bottom : 20px ;
207+ }
208+
209+ .scroll-arrow {
210+ width : 50px ;
211+ height : 50px ;
212+ }
213+
214+ .scroll-text {
215+ font-size : 12px ;
216+ }
217+
218+ .scroll-indicator : hover .scroll-text ,
219+ .scroll-indicator .scroll-active .scroll-text {
220+ transform : scale (1.3 );
221+ }
222+
223+ .scroll-text .content-change {
224+ animation : textZoomMobile 0.6s cubic-bezier (0.25 , 0.46 , 0.45 , 0.94 );
225+ }
226+ }
227+
228+ @keyframes textZoomMobile {
229+ 0% {
230+ transform : scale (1 );
231+ }
232+ 50% {
233+ transform : scale (1.6 );
234+ color : # ff6b6b ;
235+ text-shadow : 0 0 15px rgba (255 , 107 , 107 , 0.8 );
236+ }
237+ 100% {
238+ transform : scale (1.2 );
239+ color : # 00ff9f ;
240+ text-shadow : 0 0 10px rgba (0 , 255 , 159 , 0.7 );
241+ }
61242}
0 commit comments