提问人:Nadia Den 提问时间:7/19/2023 最后编辑:Kaneki21Nadia Den 更新时间:7/31/2023 访问量:71
如何更改虚拟键盘每个按钮的背景?
How to change background on every button of virtual keyboard?
问:
你能帮我使用我的虚拟键盘吗?我需要添加键下事件,并在每个按钮上将背景更改为橙色。在 HTML 中,我使用带有类和 ..letter
.symbol
window.addEventListener('keydown', function(event) {
console.log('Event', event)
if(event.keyCode) {
myButton.style.backgroundColor = 'orange';
}
})
window.addEventListener('keyup', function(event){
myButton.style.backgroundColor = 'white'
})
答:
1赞
epascarello
7/19/2023
#1
使用数据属性,您可以根据按下的键选择按钮。
function updateKeys(evt) {
const btn = document.querySelector(`button[data-key="${evt.key}"]`);
if (!btn) return;
btn.classList.toggle('active', event.type === 'keydown');
}
window.addEventListener('keydown', updateKeys);
window.addEventListener('keyup', updateKeys);
.active {
background-color: orange;
}
<button data-key="a">a</button>
<button data-key="s">s</button>
<button data-key="d">d</button>
<button data-key="f">f</button>
评论
0赞
imvain2
7/19/2023
我本来打算发布一个类似的答案,但我可能会添加一个像 if(btn) 这样的 if 语句,这样它只有在键有按钮并且不会弹出错误时才有效
0赞
Nadia Den
7/27/2023
遗憾的是,此代码不适用于使用 CSS 样式化的按钮标签。为什么按钮标签以 div 结尾?
0赞
epascarello
7/31/2023
@NadiaDen i问题在于您的 CSS 具有更高的特异性,因此颜色不会更新。
评论