编写一段html5的跑马灯,在循环滚动容器内有初始的文字,当后台通过ws发送消息到html页面时,根据消息内容替换容器内文字,并且不影响容器滚动
时间: 2023-07-15 11:14:24 浏览: 81
以下是一个简单的实现:
```html
<!DOCTYPE html>
<html>
<head>
<title>跑马灯</title>
<style>
.container {
width: 200px;
height: 50px;
overflow: hidden;
position: relative;
}
.text {
position: absolute;
top: 0;
left: 0;
white-space: nowrap;
animation: marquee 5s linear infinite;
}
@keyframes marquee {
from {
transform: translateX(0%);
}
to {
transform: translateX(-100%);
}
}
</style>
</head>
<body>
<div class="container">
<div class="text">初始的文字</div>
</div>
<script>
// 连接websocket服务器
var ws = new WebSocket("ws://localhost:8888");
// 监听消息
ws.onmessage = function(event) {
// 获取消息内容
var message = event.data;
// 替换容器内文字
var textNode = document.querySelector('.text');
textNode.innerHTML = message;
};
</script>
</body>
</html>
```
说明:
- 使用 CSS 的 `overflow: hidden` 和 `position: relative` 属性,创建一个固定宽度、高度、隐藏溢出内容的容器。
- 使用 CSS 的 `position: absolute` 和 `animation` 属性,创建一个滚动的文本节点。
- 在 JS 中,使用 WebSocket 连接服务器,并监听消息。
- 收到消息后,找到文本节点并替换其内容。由于滚动是通过 CSS 动画实现的,因此不受 JS 操作影响。
阅读全文