javascript 使用onMouseDown和onMouseUp来统计我按了多久, 为什么无法达...
发布网友
发布时间:2022-04-26 15:15
我来回答
共2个回答
热心网友
时间:2022-04-23 03:39
在Visual Basic中,可以利用鼠标事件来使应用程序对鼠标的位置和状态作出响应,如单击(Click)、双击(DbClick)、移动(MouseMove)、松开鼠标键(MouseDown)和按下鼠标键(MouseUp)等。
事实上,单击和双击不是鼠标事件。在按下鼠标键并释放时,单击事件只能把这个过程识别为单击操作。单机和双击事件也不能区分各个鼠标键与上档键、换档键和控制键的功能键。这里之所以把它们归到鼠标事件中,是为了集中说明。另外,单击和双击事件也的确与鼠标的操作有关。在发生双击事件的同时,也发生了单击事件。
按下鼠标键的事件是三种鼠标事件中最常使用的事件。例如,在运行时可用它调整控件在窗体上的位置,也可以用它实现某些图形效果。按下鼠标键时就可触发这个事件。
松开鼠标键的事件发生在松开鼠标的时候。可以利用松开鼠标键的事件来代替单击事件。这样做的好处是可以在检测鼠标键的同时,检测你所按下的键盘上的功能键,如控制键。
一般来说,松开鼠标和按下鼠标的事件是配对使用的。我们在按下鼠标的事件中开始某项操作,而在松开鼠标的事件中结束这项操作。
鼠标移动事件发生在鼠标滑动的时候。鼠标在对象上移动的时候,这个事件将一直发生。
那么,当鼠标指针移过屏幕时要调用多少次鼠标移动的事件呢?指针由屏幕顶端移动到底端时将经过多少个位置?并不是对鼠标经过的每个像素,Visual Basic都会生成鼠标移动事件。操作环境一秒生成有限的鼠标消息。并且,鼠标指针移动得越快,在任意两点之间所能识别的鼠标移动事件就越少。
应用程序能在极短的事件内识别大量鼠标移动的事件。因此,一个鼠标移动事件过程不应去做那些需要大量计算时间的工作。否则可能会引发你意想不到的结果,或者使程序的运行变得非常缓慢。
热心网友
时间:2022-04-23 04:57
如果想计算 按了多久 那你应该使用 日期对象啊 new Date()
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> new document </title>
<script type="text/javascript">
var time1=0;
window.onload = function() {
var im = document.getElementById('myimage');
im.onmousedown = ssl;
im.onmouseup = talk;
}
function ssl() {
time1 = new Date().getTime(); //记录 按下去时候的 时间戳
}
function talk() {
var time2 = new Date().getTime(); //放开鼠标时候的 时间戳
//时间戳是毫秒数 所以要除以1000
document.getElementById('show').innerHTML = '你按住'+(time2 -time1)/1000+'秒';
}
</script>
</head>
<body >
<img id="myimage" src="surface0026.png" />
<div id="show"></div>
</body>
</html>