javascript-如何模拟按钮单击,不仅触发事件,还模拟单击动画?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-如何模拟按钮单击,不仅触发事件,还模拟单击动画?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1450字,纯文字阅读大概需要3分钟。
内容图文
![javascript-如何模拟按钮单击,不仅触发事件,还模拟单击动画?](/upload/InfoBanner/zyjiaocheng/660/f74bd6b9aee0451ab178a41e294238b0.jpg)
我想为不希望使用鼠标的用户设计一个UI,其中包括一些按钮和一些键盘快捷键.为了提供一些额外的视觉反馈,是否有一种方法可以让我的键盘事件在视觉上模拟对按钮的单击,从而使它们播放与用鼠标单击时相同的动画?
例如,我希望能够做到这一点,以便当用户开始按下“ Q”时,相应的按钮进入“被单击”状态,并且一旦释放“ Q”,它就会返回到通常的外观.此外,在最后使按钮的onclick触发会很好,但这对我来说并不是硬性要求.
解决方法:
您可以使用自己的自定义类复制:active伪类. (.活性)
HTML:
<button id="demo" onclick="demoHandler()">Test</button>
JavaScript:
function simulateClick(el) {
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
el.dispatchEvent(evt);
}
var hotkeyActive = false;
window.addEventListener('keydown', function(e) {
if(!hotkeyActive && e.keyCode === 81) {
hotkeyActive = true;
demo.className = 'active';
var keyupHandler = function (event) {
hotkeyActive = false;
demo.className = '';
simulateClick(demo);
window.removeEventListener('keyup', keyupHandler, false);
};
window.addEventListener('keyup', keyupHandler, false);
}
}, false);
var demo = document.getElementById('demo');
function demoHandler() {
alert('Button Clicked!');
}
CSS:
button {
padding: 5px;
background: rgb(255, 255, 255);
border: 1px solid rgb(122, 122, 122);
border-radius: 2px;
outline: none;
}
button.active, button:active {
border: 1px solid rgb(0,0,0);
box-shadow: 0 0 2px 0 rgb(0,0,0);
}
JSFiddle:http://jsfiddle.net/r6R86/4
内容总结
以上是互联网集市为您收集整理的javascript-如何模拟按钮单击,不仅触发事件,还模拟单击动画?全部内容,希望文章能够帮你解决javascript-如何模拟按钮单击,不仅触发事件,还模拟单击动画?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。