mouseup 左键_javascript – 如何知道鼠标按钮的当前状态(mouseup状态或mousedown状态)...

在回答这个问题时

我不太清楚为什么你的系统决定在浏览器外部(或图像外部)发生点击时拖动图像..为了正确回答我需要查看你的实际代码(只是鼠标事件会这样做).但是,如果您按照我在下面提到的那样实现系统,那么您应该不会遇到您要问的问题.

更多的信息

好古老的Quirksmode对此有一些说法…这基本上相当于这样一个事实:感谢W3C你无法检测到鼠标移动处理器中是否按下了左键,因为没有按下任何按钮时e.button报告0和何时按下左键 – 猜猜是什么? – e.button报告0! (对于W3C complient浏览器).这是我完全赞同Internet Explorer的“二进制标志”实现的时代之一:

获得鼠标状态的唯一方法 – 我所知道的 – 是使用mousedown和mouseup来检测和记录 – 听起来就像你正在做的那样.现在我没有机会玩任何较新的“触摸”事件,他们可能能够帮助你……但是让它在crossbrowser上运行会很棘手.在一天结束时,有时你必须接受你在浏览器环境中工作,它永远不会像专门设计的应用程序那样顺利.

适用于Internet Explorer的快速代码:

document.body.onmousemove = function(e){

e = e ? e : Event;

if ( e.button == 1 ) {

/// mouse button is pressed

}

}

适用于IE的快速代码以及其他任何东西:

var delm = document.documentElement ? document.documentElement : document.body;

var buttonPressed = false;

delm.onmousdown = function(e){

buttonPressed = true;

}

delm.onmousup = function(e){

buttonPressed = false;

}

delm.onmousmove = function(e){

if ( buttonPressed ) {

/// the button is pressed, but only whilst being

/// detected inside the browser

}

}

正如其他海报所指出的那样,您可以尝试使用一个可以检测用户指针何时离开/重新进入浏览器环境的系统,但多年来我所做的所有尝试从未如此成功. Flash对此有更好的支持,但我怀疑你会不会去那里……

边注

就像今天可能仍然有用的一些历史信息一样,在处理拖动图像时,旧版本的Internet Explorer需要在拖动成功之前将以下内容应用于图像.这阻止了默认的浏览器拖动系统切入和阻碍.有比使用内联处理程序更好的方法来实现这一点,但为了简单和清晰起见,我将其放在这里.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值