编写一段html5的跑马灯,在滚动容器内有文字,当后台通过ws发送消息到html页面时,根据消息内容替换容器内文字,并且不影响容器滚动
时间: 2023-07-16 10:13:08 浏览: 79
以下是一个基本的html5跑马灯,你可以根据需要进行修改:
```html
<!DOCTYPE html>
<html>
<head>
<title>跑马灯</title>
<style>
.container {
width: 100%;
height: 50px;
overflow: hidden;
position: relative;
background-color: #eee;
}
.text {
position: absolute;
top: 0;
left: 100%;
font-size: 24px;
line-height: 50px;
white-space: nowrap;
}
</style>
<script>
var ws = new WebSocket("ws://localhost:8080"); // 连接websocket服务器
ws.onmessage = function(event) { // 接收到消息时执行的函数
var container = document.querySelector(".container");
var text = document.createElement("div"); // 创建新文本节点
text.classList.add("text");
text.innerText = event.data; // 消息内容作为新文本节点的文本
container.appendChild(text); // 将新文本节点添加到容器中
var distance = container.offsetWidth + text.offsetWidth; // 计算新文本节点需要移动的距离
text.style.left = distance + "px"; // 将新文本节点移出容器右侧
var duration = distance / 100; // 计算新文本节点需要移动的时间
text.style.transition = "all " + duration + "s linear"; // 设置新文本节点移动的过渡效果
setTimeout(function() { // 等待一段时间后将新文本节点移除
container.removeChild(text);
}, duration * 1000);
};
</script>
</head>
<body>
<div class="container"></div>
</body>
</html>
```
在上面的代码中,我们创建了一个WebSocket对象,连接到本地的8080端口。当我们接收到消息时,我们创建一个新的文本节点,并将消息内容作为其文本。然后,我们将新文本节点添加到容器中,计算新文本节点需要移动的距离和时间,并设置其移动的过渡效果。最后,我们等待一段时间后将新文本节点从容器中移除。这样,我们就可以在容器中实现一个基本的跑马灯效果,并且可以根据后台发送的消息内容进行动态更新,而不会影响到容器的滚动。
阅读全文