请教关于ctrl和shift

dandande 2008-12-16 01:01:02

请问下面两个句子该怎么写?谢谢!
if(ctrl按下 && 鼠标按下)
if(shift按下 && 鼠标按下)
希望在ie和ff都好使
...全文
160 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
dandande 2008-12-20
  • 打赏
  • 举报
回复
非常感谢!
菜子儿 2008-12-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 syukugai 的回复:]
HTML code<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
function $(id){
return (document.getElementById(id));
}

function isKeyPressed(evt){
e = window.event || evt
var msg = "";
if (e.alt…
[/Quote]


顶 。。。。用keycode来检测。。。
Robin.Xun 2008-12-19
  • 打赏
  • 举报
回复
好,非常好
cat_hsfz 2008-12-19
  • 打赏
  • 举报
回复
可以参考楼上的思路,用keycode来检测。但实际应用场景一半比较麻烦,例如你要监听Ctrl+A,那么你必须监听Ctrl的keydown,然后等候A的keydown,这才是一个Ctrl+A。如果Ctrl的keydown后又keyup了,这是A的keydown就没意义了。

我的意思是,你要监听组合键,就必须记录每一个键的按下状态。
jiang_jiajia10 2008-12-19
  • 打赏
  • 举报
回复
LS的很好
不悲不喜 2008-12-19
  • 打赏
  • 举报
回复
冤枉呀!
我没用keycode呀!
event里面本来就有 altKey,ctrlKey,shiftKey来标识状态的。
为什么大家还在热火朝天的讨论用keycode呢。
是不是我看错题了?

当然用keycode也可以,只是没有必要呀。

同时,再贴一个以前回帖时做的,
实现游戏中多键同时按下时的键盘处理。
给大家参考一下。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<script>
function $(id){
return (document.getElementById(id));
}

var keybuf = {};
function keydown(e){
var evt = e || window.event;
var o = $("div1");
keybuf[evt.keyCode] = true;
whatIsDown();
}

function keyup(e){
var evt = e || window.event;
var o = $("div1");
keybuf[evt.keyCode] = false;
whatIsDown();
}

function keypress(e){
whatIsDown();
}

function whatIsDown(){
var o = $("div1");
var str = "";
for (k in keybuf) {
if (keybuf[k] == true) {
str += k + "; ";
}
}
o.innerHTML = str;
}
</script>
<body>
<input type="text" value="" onkeydown="keydown(event);" onkeyup="keyup(event);" onkeypress="keypress(event);"/>
<div id="div1">
</div>
</body>
</html>
haike2006 2008-12-18
  • 打赏
  • 举报
回复
高手 啊
文盲老顾 2008-12-18
  • 打赏
  • 举报
回复
mark 一下
itian 2008-12-18
  • 打赏
  • 举报
回复
看看addEventListener(非IE)和addEvent(IE)方法
不悲不喜 2008-12-17
  • 打赏
  • 举报
回复
改一下响应鼠标事件。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
function $(id){
return (document.getElementById(id));
}

function isKeyPressed(evt){
e = window.event || evt
var msg = "";
if (e.altKey) {
msg += "The ALT key was pressed!";
}
if (e.ctrlKey) {
msg += "The Ctrl key was pressed!";
}
if (e.shiftKey) {
msg += "The Shift key was pressed!";
}
var o = $("div1");
o.innerHTML = msg;
}
</script>
</head>
<body onmousedown="isKeyPressed(event);">
<p>
按下Ctrl,Alt,Shift键,看看效果。
</p>
<div id="div1">
</div>
</body>
</html>
不悲不喜 2008-12-17
  • 打赏
  • 举报
回复
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
function $(id){
return (document.getElementById(id));
}

function isKeyPressed(evt){
e = window.event || evt
var msg = "";
if (e.altKey) {
msg += "The ALT key was pressed!";
}
if (e.ctrlKey) {
msg += "The Ctrl key was pressed!";
}
if (e.shiftKey) {
msg += "The Shift key was pressed!";
}
var o = $("div1");
o.innerHTML = msg;
}
</script>
</head>
<body onkeydown="isKeyPressed(event);" onkeyup="isKeyPressed(event);">
<p>
按下Ctrl,Alt,Shift键,看看效果。
</p>
<div id="div1">
</div>
</body>
</html>
mrwang2000 2008-12-17
  • 打赏
  • 举报
回复
【个人意见,仅供参考】

试一试

<script language="javascript">
function $(objName){
return document.getElementById(objName);
}

function addEvent(obj,evt,fn){
if(obj.addEventListener){
obj.addEventListener(evt,fn,false);
}
else if(obj.attachEvent){
obj.attachEvent('on'+evt,fn);
}
}

function AdvancedListener(){
this.MouseIsDown = false;
this.CtrlIsPressed = false;
this.ShiftIsPressed = false;
}

AdvancedListener.prototype.record = function(e){
if (e == 'mousedown'){
this.MouseIsDown = true;
}
if (e == 'mouseup'){
this.MouseIsDown = false;
}
if (e == 'keydown' && event.keyCode==17){ //ctrl is down
this.CtrlIsPressed = true;
}
if (e == 'keydown' && event.keyCode==16){ //shift is down
this.ShiftIsPressed = true;
}
if (e == 'keyup' && event.keyCode==17){ //ctrl is up
this.CtrlIsPressed = false;
}
if (e == 'keyup' && event.keyCode==16){ //shift is up
this.ShiftIsPressed = false;
}
}

var listener = new AdvancedListener();
function StartListening(){
addEvent(document.body,'keydown',function(){listener.record('keydown');Check();});
addEvent(document.body,'keyup',function(){listener.record('keyup');Check();});
addEvent(document.body,'mousedown',function(){listener.record('mousedown');Check();});
addEvent(document.body,'mouseup',function(){listener.record('mouseup');Check();});
}

//test code here...
function Check(){
$('container').innerHTML = '';
if(listener.CtrlIsPressed ){
$('container').innerHTML += 'Ctrl pressed<br>';
}
if(listener.ShiftIsPressed ){
$('container').innerHTML += 'Shift pressed<br>';
}
if(listener.MouseIsDown){
$('container').innerHTML += 'MouseLeftButton pressed<br>';
}
if(listener.CtrlIsPressed && listener.MouseIsDown){
$('container').innerHTML += '<h1>Ctrl + Mouse!!!</h1><br>';
}
if(listener.ShiftIsPressed && listener.MouseIsDown){
$('container').innerHTML += '<h1>Shift + Mouse!!!</h1><br>';
}
}
</script>
<body onload="StartListening();">
<div>按一按Ctrl,Shift和鼠标左键</div>
<div id="container"></div>
</body>
阿云ivan 2008-12-16
  • 打赏
  • 举报
回复
好高级的用法哦
帮忙顶一下

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧