63 lines
2.0 KiB
JavaScript
63 lines
2.0 KiB
JavaScript
|
"use client";
|
|||
|
// import { Animated, Easing } from "react-native";
|
|||
|
import React, { useState, useEffect } from "react";
|
|||
|
import { Image, NoticeBar } from "antd-mobile";
|
|||
|
export default function ScrollNotice({ content }) {
|
|||
|
// const [fadeAnim] = useState(new Animated.Value(300)); // 透明度初始值为0
|
|||
|
// let animation = Animated.timing(fadeAnim, {
|
|||
|
// toValue: -(length * 60),
|
|||
|
// duration: 4000,
|
|||
|
// delay: 500,
|
|||
|
// easing: Easing.linear,
|
|||
|
// useNativeDriver: false,
|
|||
|
// useNativeDriverForTransform: true, // 如果动画涉及transform属性,则需要此设置
|
|||
|
// });
|
|||
|
// useEffect(() => {
|
|||
|
// return () => {
|
|||
|
// animation && animation.stop();
|
|||
|
// animation = null;
|
|||
|
// };
|
|||
|
// }, []);
|
|||
|
|
|||
|
// const runAnimation = () => {
|
|||
|
// animation &&
|
|||
|
// animation.start(() => {
|
|||
|
// // 动画完成时的回调,重置动画值并再次运行动画以实现循环
|
|||
|
// fadeAnim.setValue(length * 80); // 重置动画值(如果需要)
|
|||
|
// runAnimation(); // 再次运行动画
|
|||
|
// });
|
|||
|
// };
|
|||
|
|
|||
|
// useEffect(() => {
|
|||
|
// runAnimation(); // 组件挂载时开始动画
|
|||
|
// // 注意:这里没有清理函数,因为动画是无限循环的。
|
|||
|
// // 如果你需要在组件卸载时停止动画,你需要实现一个机制来跟踪组件的状态,并在适当时调用`stopAnimation`。
|
|||
|
// }, [fadeAnim]);
|
|||
|
return (
|
|||
|
<div className="bg-[#301024] border-2 border-[#FF518F26] px-4 py-3 rounded-xl flex-row">
|
|||
|
<NoticeBar
|
|||
|
icon={
|
|||
|
<Image
|
|||
|
width={14}
|
|||
|
height={14}
|
|||
|
className="rounded-full"
|
|||
|
src={
|
|||
|
process.env.NEXT_PUBLIC_WEB_ASSETS_URL + "/icons/32DP/notice.png"
|
|||
|
}
|
|||
|
fit="cover"
|
|||
|
/>
|
|||
|
}
|
|||
|
bordered={false}
|
|||
|
content={content}
|
|||
|
style={{
|
|||
|
"--background-color": "transparent",
|
|||
|
"--height": "max-content",
|
|||
|
border: "none",
|
|||
|
padding: 0,
|
|||
|
}}
|
|||
|
/>
|
|||
|
<div className="mr-2"></div>
|
|||
|
</div>
|
|||
|
);
|
|||
|
}
|