请基于H5帮我生成一个自由向左并且首尾相接的文字滚动的效果,鼠标移入后停止滚动
时间: 2024-05-09 20:21:22 浏览: 163
鼠标移上,文字滚动,移开则停止
5星 · 资源好评率100%
以下是一个简单的实现,你可以根据自己的需求进行修改和优化:
HTML:
```html
<div class="scroll-wrapper">
<div class="scroll-content">
<span>这里是滚动的文字,可以自由向左滚动</span>
<span>这是第二段文字,也会跟着滚动</span>
<span>这是第三段文字,继续向左滚动</span>
</div>
</div>
```
CSS:
```css
.scroll-wrapper {
width: 100%;
overflow: hidden;
white-space: nowrap;
}
.scroll-content {
display: inline-block;
animation: scroll 10s linear infinite;
&:hover {
animation-play-state: paused;
}
}
@keyframes scroll {
0% {
transform: translateX(0);
}
100% {
transform: translateX(-100%);
}
}
```
JS:
```javascript
// 当鼠标移入时,停止动画
document.querySelector('.scroll-wrapper').addEventListener('mouseenter', function() {
document.querySelector('.scroll-content').style.animationPlayState = 'paused';
});
// 当鼠标移出时,继续动画
document.querySelector('.scroll-wrapper').addEventListener('mouseleave', function() {
document.querySelector('.scroll-content').style.animationPlayState = 'running';
});
```
解释:
1. 使用 `overflow: hidden` 让容器隐藏超出部分的内容;
2. 使用 `white-space: nowrap` 让内容不换行;
3. 使用 `display: inline-block` 让内容能够自由向左滚动;
4. 使用 CSS 动画 `@keyframes` 让内容持续向左滚动;
5. 使用 JS 监听鼠标移入移出事件,控制动画状态。
注意:
1. CSS 动画中的 `10s` 表示动画持续时间,你可以根据需要调整;
2. JS 中的选择器 `.scroll-wrapper` 和 `.scroll-content` 需要根据你的 HTML 结构进行修改;
3. 本示例并没有考虑兼容性和性能问题,如果需要在生产环境中使用,请进行优化。
阅读全文