<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>上下滚动文字</title>
<style>
.scroll-container {
height: 20px; /* 设置滚动区域的高度 */
overflow: hidden; /* 隐藏溢出内容 */
position: relative;
}
.scroll-content {
position: absolute;
top: 0;
animation: scroll 20s linear infinite; /* 设置滚动动画 */
}
@keyframes scroll {
from {
transform: translateY(0%);
}
to {
transform: translateY(-100%); /* 负值等于滚动区域高度 */
}
}
</style>
</head>
<body>
<div class="scroll-container" onmouseover="pauseScroll()" onmouseout="resumeScroll()">
<div class="scroll-content">
<p>这里是要滚动的文字内容。</p>
<p>这是第二行内容。</p>
<p>这是第二行内容。</p>
<p>这是第二行内容。</p>
<p>这是第二行内容。</p>
<p>这是第二行内容。</p>
<p>这是第二行内容。</p>
<p>这是第二行内容。</p>
<p>这是第二行内容。</p>
<!-- 添加更多内容 -->
</div>
</div>
<script>
// 获取滚动内容的高度
const scrollContent = document.querySelector('.scroll-content');
const scrollContentHeight = scrollContent.clientHeight;
// // 设置滚动容器的高度为滚动内容的高度的两倍,确保内容滚动完后仍然有内容可见
// const scrollContainer = document.querySelector('.scroll-container');
// scrollContainer.style.height = `${scrollContentHeight * 2}px`;
// 当动画完成时,重新开始滚动
scrollContent.addEventListener('animationiteration', () => {
scrollContent.style.transform = 'translateY(0%)';
});
// 暂停滚动
function pauseScroll() {
scrollContent.style.animationPlayState = 'paused';
}
// 恢复滚动
function resumeScroll() {
scrollContent.style.animationPlayState = 'running';
}
</script>
</body>
</html>
08-02