大佬们知道同个页面给两个div元素都赋予焦点吗

来源:3-1 总结

学编程的懒虫

2017-11-18 16:58

不想和老师那样得在页面上点击按钮控制,想另一个玩家一样用键盘控制,我就把local.js代码复制到remote.js中改了一些名字,然后把:
document.onkeydown=func...
改成相应的demo对象,比如:
document.getElementById('local').onkeydown=func...

最后我给两个 div:local 和 remote 都设置了tabindex=0 的属性,然后在js中获取两个div并让它们得到焦点:document.getElementById('local').focus();
document.getElementById('remote').focus();
还是没用,要分别点击两个div,但是就是不会同时一直的获得焦点
只有local或者remote两个div中的一个可以键盘操作

若是我的想法不行的求大神给个可以键盘操作第二个玩家的代码

写回答 关注

1回答

  • 风之承
    2018-01-11 17:45:13

    你的描述,我不是很理解——你的目标是操作键盘的时候,在两个区域都实现相同的效果?你说的那种可能考虑时间的分发机制、键盘事件中途被消耗掉(只是可能,没试过)

    思路:

    我觉得思路可以是,local.js中的每一次调用game对象的方法,都向remote.js中发送指令——remote.js接收指令后调用相关方法(调用方法跟视频教程中一样)

    发送指令的过程,涉及到事件分发和线程通信?(刚学前端,不清除准确的概念)——应该有相关框架

    学编程的懒虫

    我意思就是类似拳皇这种可以双人的单机游戏一样,两个玩家用同一个电脑的键盘分别操控两个角色竞技,不用联机。 比如字母区域是玩家1操作区域,小键盘区域可以设置给玩家2操作。 但是拳皇游戏两个角色都在一个div里操作吧,而这个俄罗斯方块分了两个div,每次只能一个div获得焦点可以用键盘操纵,而没获得焦点的第二个玩家游戏区域就不能同时用键盘操纵他的游戏区域了,这样就不能实时竞技了。

    2018-01-17 10:09:33

    共 1 条回复 >

基于websocket的火拼俄罗斯(单机版)

前端大牛带你实现单机版俄罗斯方块!

31676 学习 · 106 问题

查看课程

相似问题