键控效果,如果在效果完成之前键控,则发出警报
Keydown effect, alert if keyup before effect finishes
本文关键字:如果 更新时间:2023-09-26
我的目标:在效果发生时按住空格键(模拟指纹扫描)。若用户在效果结束前释放按键,我想显示一条确认消息。keydown部分工作正常,并进入功能"进程",但如果在效果结束前释放keyup,则不会在keyup上显示错误消息。这就是我所拥有的。。。
var active = false;
$(document).one("keydown", function(e) {
if ((e.keyCode == 32) && (active == false)) {
active = true;
$(".panel_1").slideDown(5000, function() {
active = false;
$(".panel_1").slideUp(2000, function() {process(); })
});
}
});
$(document).one("keyup",function(e) {
if ((e.keyCode == 32) && (active == true)) {
var r=confirm("Oops! You must HOLD down the space key until scan is complete. Press OK to try again, or Cancel to return to homepage.");
if (r==true) {
reset();
}
else {
window.location.replace("home.html");
}
}
});
验证是否在第一个幻灯片向下动画中释放了关键帧。根据您的代码,一旦它开始向上滑动,您的活动将被设置为false,然后使其生效,这样keyup事件就不会触发。
另外,我建议在JavaScript中使用triple=。
您的代码似乎可以在这里工作:http://jsfiddle.net/D52eq/但请注意,只有在效果的.slideDown()
阶段释放空格键时才会出现确认消息——您在.slideUp()
调用之前设置active = false;
。
如果你想确认空格键是否在整个动画和process()
调用完成之前释放,那么试试这个:
$(document).one("keydown", function(e) {
if ((e.keyCode == 32) && (!active)) {
active = true;
$(".panel_1").slideDown(5000).slideUp(2000, function() {
process();
active = false;
})
}
});
请注意,然后您就可以链接.slideDown()
和.slideUp()
,不需要为.slideDown()
提供回调函数。此外,我已经用!active
替换了active == false
。
演示:http://jsfiddle.net/D52eq/1/
相关文章:
- 如果 a 为 false,则 if(a) === if(false)
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 如果我在javascript中输入无效的电子邮件或空白,如何显示特定的文本框边框红色
- 如果href包含X,请更改href
- 如果localstorage为空,则显示欢迎消息
- 点击后隐藏潜水?(但如果Div是一面旗帜呢?)
- 如果元素's的ID以数字开头
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- Jquery模板,如果xx&&如果yy
- 如果值为空,如何设置输入的默认值?jQuery
- 如果选中了多个复选框,如何添加事件
- 如何检查元素的内容是否为空,如果为空,请在jquery中删除该元素
- 如何知道元素在屏幕上是否可见.如果没有,请滚动页面
- Javascript,如果条件在没有&&逻辑运算符当&&它不起作用
- 一个密码测试程序,如果存在空格,它会提醒用户
- 如果使用javascript函数屏幕太小,我该如何更改HTML文件的背景色
- tiltSlider播放/暂停视频元素(如果li有当前类)