html +css 实现一个自动循环滚动的表格,鼠标悬浮时停止
时间: 2023-12-03 14:42:23 浏览: 215
可以使用 HTML table 元素和 CSS 动画来实现自动循环滚动的表格,同时通过 JavaScript 实现鼠标悬浮时停止滚动。具体实现步骤如下:
1. HTML 结构:用 table 元素来创建表格,包含表头和表体。表体中的内容需要重复出现,以实现自动循环滚动。
```
<table>
<thead>
<tr>
<th>表头1</th>
<th>表头2</th>
<th>表头3</th>
</tr>
</thead>
<tbody>
<tr>
<td>内容1</td>
<td>内容2</td>
<td>内容3</td>
</tr>
<tr>
<td>内容1</td>
<td>内容2</td>
<td>内容3</td>
</tr>
<!-- 重复多行 -->
</tbody>
</table>
```
2. CSS 样式:使用 CSS 动画实现表格自动滚动,同时设置鼠标悬浮时停止滚动。
```
table {
width: 100%;
table-layout: fixed;
border-collapse: collapse;
animation: scroll 10s linear infinite; /* 表格自动滚动 */
}
tbody:hover {
animation-play-state: paused; /* 鼠标悬浮时停止滚动 */
}
@keyframes scroll {
0% {
transform: translateY(0);
}
100% {
transform: translateY(calc(-100% + 2em)); /* 计算滚动距离,2em 为表头高度 */
}
}
```
3. JavaScript 交互:通过添加事件监听器来实现鼠标悬浮时停止滚动。
```
const tbody = document.querySelector('tbody');
tbody.addEventListener('mouseover', () => {
tbody.style.animationPlayState = 'paused';
});
tbody.addEventListener('mouseout', () => {
tbody.style.animationPlayState = 'running';
});
```
完整代码如下:
```
<!DOCTYPE html>
<html>
<head>
<style>
table {
width: 100%;
table-layout: fixed;
border-collapse: collapse;
animation: scroll 10s linear infinite;
}
tbody:hover {
animation-play-state: paused;
}
@keyframes scroll {
0% {
transform: translateY(0);
}
100% {
transform: translateY(calc(-100% + 2em));
}
}
</style>
</head>
<body>
<table>
<thead>
<tr>
<th>表头1</th>
<th>表头2</th>
<th>表头3</th>
</tr>
</thead>
<tbody>
<tr>
<td>内容1</td>
<td>内容2</td>
<td>内容3</td>
</tr>
<tr>
<td>内容1</td>
<td>内容2</td>
<td>内容3</td>
</tr>
<tr>
<td>内容1</td>
<td>内容2</td>
<td>内容3</td>
</tr>
<tr>
<td>内容1</td>
<td>内容2</td>
<td>内容3</td>
</tr>
<!-- 重复多行 -->
</tbody>
</table>
<script>
const tbody = document.querySelector('tbody');
tbody.addEventListener('mouseover', () => {
tbody.style.animationPlayState = 'paused';
});
tbody.addEventListener('mouseout', () => {
tbody.style.animationPlayState = 'running';
});
</script>
</body>
</html>
```
阅读全文