提现记录循环滚动展示
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background-color: #f5f7fa;
font-family: "Microsoft YaHei", sans-serif;
}
/* 提现记录容器 - 限定可视区域,隐藏超出部分 */
.withdraw-container {
width: 380px;
height: 400px;
background-color: #ffffff;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
padding: 20px;
overflow: hidden;
position: relative;
}
.container-title {
font-size: 18px;
font-weight: 600;
color: #333333;
margin-bottom: 16px;
text-align: center;
border-bottom: 1px solid #eeeeee;
padding-bottom: 12px;
}
/* 滚动列表容器 - 用于实现动画滚动 */
.withdraw-list {
position: absolute;
top: 70px;
left: 20px;
right: 20px;
animation: scroll-up 60s linear infinite; /* 滚动动画:60秒完成一次,匀速,无限循环 */
}
/* 单个提现记录样式 */
.withdraw-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 0;
border-bottom: 1px dashed #f0f0f0;
font-size: 14px;
}
.user-name {
color: #666666;
font-weight: 400;
}
.withdraw-amount {
color: #e63946;
font-weight: 500;
}
/* 鼠标悬浮暂停滚动,提升用户体验 */
.withdraw-container:hover .withdraw-list {
animation-play-state: paused;
}
/* 核心:向上循环滚动动画 */
@keyframes scroll-up {
0% {
transform: translateY(0); /* 初始位置 */
}
100% {
transform: translateY(-50%); /* 滚动至自身高度的50%(实现无缝循环) */
}
}
// 1. 定义辅助数据:常见姓氏、常见名字单字(用于生成合理姓名)
const familyNames = ['赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈'];
const givenNames = ['伟', '华', '明', '强', '丽', '静', '文', '杰', '军', '涛', '艳', '娜'];
// 2. 生成隐藏中间字的姓名(格式:姓+*+名,如李*万、张*丽)
function generateHiddenName() {
// 随机选取姓氏
const familyName = familyNames[Math.floor(Math.random() * familyNames.length)];
// 随机选取名字单字(作为最后一个字)
const givenName = givenNames[Math.floor(Math.random() * givenNames.length)];
// 拼接为隐藏中间字的格式(适用于双字名,符合示例要求)
return `${familyName}*${givenName}`;
}
// 3. 生成100-2000元之间的随机金额(整数,保留"元"单位)
function generateRandomAmount() {
// Math.random() 生成 [0,1) 区间数值,计算后得到 [100, 2000] 区间整数
const amount = Math.floor(Math.random() * 1901) + 100;
return `${amount}元`;
}
// 4. 生成100条提现记录并渲染到页面
function renderWithdrawRecords() {
const withdrawList = document.getElementById('withdrawList');
let recordsHtml = '';
// 循环生成100条记录
for (let i = 0; i < 100; i++) {
const name = generateHiddenName();
const amount = generateRandomAmount();
// 拼接单个记录的HTML结构
recordsHtml += `
提现姓名:${name}
金额:${amount}
`;
}
// 关键:复制一份记录HTML,实现无缝循环滚动(避免滚动到末尾出现空白)
withdrawList.innerHTML = recordsHtml + recordsHtml;
}
// 5. 页面加载完成后执行渲染
window.onload = function() {
renderWithdrawRecords();
};