javascript - 创建具有状态图片的用户列表

标签 javascript html css html-select

我想制作一个用户列表,并有一个图像来指示他们的在线状态,但我一直无法找到合适的选项来使用常规的 html 选择标签。我还希望能够为每个用户提供选项,但这对我来说不是问题。

如果我的解释不是很好,我已经创建了一个图像来帮助可视化我想要得到的东西。我希望能够即时更改图片/状态指示器(无需刷新页面或在客户端执行某些操作)。

如果用户列表没有硬编码到 html 中,是否有办法为每个用户设置图片? (用户会从数据库查询到列表中)

注意:如果有帮助的话,我正在使用 Node.js 和 socket.io 作为在线部分。

引用图片:

enter image description here

编辑:来 self 正在处理的网站的类似用户列表设计的 JSFiddle(不能直接链接到网站,它不是外部连接的服务器):http://jsfiddle.net/Blubberguy22/LN45a/28/

HTML:

<body>
    <div id="usersOptions" style="background-color: #ddeeff; left: 0; top: 0; position:absolute; 
height:260px; width:230px; border-style:inset; 
border-width: 0px; margin: 0; z-index: 300; "> <strong>Users Online:</strong>

        <select id='userList' style="width: 100%; height: 100%;" multiple></select>
        <button id='makeFakeUser' onclick="addUser();">AddUser</button>
</body>

Javascript:

function addUser() {
    //In actual code gets users from connections within socket.io
    var option = document.createElement("option");
    option.text = "A person";
    userList.add(option);
}

澄清一下,我不需要帮助来获取用户的在线状态,而是需要将状态指示器放在列表中的用户旁边。

最佳答案

这里最简单的解决方案似乎是让每个客户端创建一个到服务器的 WebSocket,并让服务器在用户上线或下线时发送一个事件。

要真正改变图像,你可以这样做:

joesNumber=22;
WebSocket.onmessage=function(event){
    data=JSON.parse(event.data);
    //Interpret data here
    document.getElementsByClassName("onlineIndicator")[joesNumber].src="./fancyIndicatorImage.png.jpg";
}

关于javascript - 创建具有状态图片的用户列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25040616/

相关文章:

javascript - ExtJS 4.2.1 - 将文本字段添加到 XTemplate

javascript - 将数组数组的字符串表示形式解析为 2 个单独的数组数组,它​​们是数字

android - 适用于 iOS 和 Android 的 HTML5 地理定位

html - 这些多余的水平空间从何而来?

css - Bootstrap 4.1 float 标签

javascript - 我想在 javascript 中做动态 div 高度

JavaScript/jQuery 对第三方网站的引用在本地工作,而不是在 godaddy 运行站点上托管时工作(404 错误)

html - 如何将方法的返回结果包装到一个div block 中

html - Django 中模板标签的样式

html - 不遵守 SVG 中的动画延迟