javascript - 如何用一些按钮显示图像?
问题描述
我想创建一个页面(在我的计算机上),当您在本地网络中单击手机上另一个页面上的某些按钮时,图像会发生变化。为了解释这个项目,我希望用户可以选择一个词(所以,在电话上)并且在计算机页面上出现一个污点,所以它会创建一个阴影超时。(这很重要,因为这意味着图像会自行叠加)。我是编程新手,所以这对我来说是一项非常艰苦的工作。
但是,我现在可以使用 socket.io 和 node.js 通过本地网络在我的手机和我的计算机之间进行通信。我也可以在一个简单的 html 页面中制作我想要的东西。但我绝对不知道如何用 socket.io 做同样的事情。这就是为什么我需要你的帮助。因为我想要两个不同的页面并进行交流,我想我知道我必须朝哪个方向前进,但真正的问题在于显示图像的按钮。 编辑:此外,我希望图像出现淡化
我的 server.js 文件
io.socket.on('connection', function(socket) {
console.log('Client connected...');
//when the server receives clicked message, do this
socket.on('clicked', function(data) {
clickCount++;
//send a message to ALL connected clients
socket.broadcast.emit('buttonUpdate', clickCount);
});
});
和 index.html
<p id="buttonCount">The button has been clicked 0 times.</p>
<button onclick="buttonClicked()">Click me</button>
<script src="socket.io/socket.io.js"></script>
<script>
var socket = io.connect();
function buttonClicked(){
socket.emit('clicked');
}
//when we receive buttonUpdate, do this
socket.on('buttonUpdate', function(data){
document.getElementById("buttonCount").innerHTML = 'The button has been clicked ' + data + ' times.';
});
</script>
我知道我的实际代码的重要部分在这里,即使这实际上与我想要的无关。
在 html 语言中,我通常只使用这样的函数
".titre" ).click(function() {
$( ".d5" ).fadeIn( 2000 );
$( ".d4" ).fadeIn( 2000 );
谢谢
解决方案
socket.broadcast.emit()
将向除调用当前事件的客户端之外的所有人发出事件。
socket.emit()
只会发送给客户端。
话虽如此,您需要同时做这两件事才能接触到每个人。
io.socket.on("connection", function(socket) {
console.log("Client connected...");
// On emit from client with socket.emit("clicked")
socket.on("clicked", function(data) {
clickCount++;
// Emit from server to client
socket.broadcast.emit("buttonUpdate", clickCount);
socket.emit("buttonUpdate", clickCount);
});
});
例如,参见Codesandbox。
https://6yq3738mrn.sse.codesandbox.io/
对于只显示数字的主页。https://6yq3738mrn.sse.codesandbox.io/control
用于带有按钮的控制页面。
推荐阅读
- node.js - 无法将 React-Bootstrap 与 Expo 一起使用(无法解析模块 react/jsx-runtime)
- java - Intellij 中的控制台日志格式已更改
- terraform - 尝试创建 azure 存储帐户并使用它来存储 terraform 状态文件
- python - 使用 statsmodels.tsa.seasonal.seasonal_decompose 分解营销效果
- python - 正则表达式:: 'pandas._libs.interval.Interval' 对象没有属性 'replace'
- docker - 使用 Docker 和 VSCode 设置 XDebug
- azure-eventgrid - Azure 事件网格 - 延迟执行
- c - 在所有工作项完成后关闭线程池
- python - 将多个文件读入单独的数据帧
- android - 检测设置(com.android.settings)是否使用自定义启动器打开