Javascript步骤事件与鼠标
Javascript step event with mouse
我是一个画布新手,我想知道如何获得"步骤"事件(例如每半秒执行一次),同时能够参考鼠标位置,例如,如果我想在鼠标位置每0.5秒独立于鼠标移动绘制一些东西。
您必须将mousemove
事件全局绑定到文档主体,并将鼠标位置保存为可公开访问的变量(如window.mouseX
和window.mouseY
)。然后在setInterval(function () {
...
}, 500);
中,您可以检索window.mouseX
和window.mouseY
的值。
据我所知,除了不断地全局跟踪鼠标的运动之外,没有其他方法,因为setInterval不会为您创建带有鼠标数据的事件。
下面是别人的例子:https://stackoverflow.com/a/4704204/1381550
您可能想使用setInterval(yourFunction, delay)
。
"yourFunction"很好……你的函数和'delay'是以毫秒为单位的间隔时间。
在你的例子中,它看起来像:
//alway's define stuff before you use it
function drawSomething(){
//your code here
}
window.setInterval(drawSomething, 500); //this is your 0.5 sec stepped interval
参见(例如)MDN
祝你好运!
使用新的HTML5功能requestAnimationFrame
与画布代替setInterval
和setTimeout
,以获得更好的性能。例如,requestAnimationFrame
确保当用户切换到另一个选项卡时,动画暂停=节省CPU。要支持所有浏览器使用shim层,请参见示例:
//shim layer
window.requestAnimFrame =
window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(callback) {
window.setTimeout(callback, 1000 / 60);
};
function animate() {
requestAnimFrame( animate );
draw();
}
function draw()
{
// handle time interval here
// actual code here
}
有关更多信息,请参阅(包括如何处理时间间隔的技巧):
- 窗口。requestAnimationFrame mozzila
- adobe cook books HTML5岩石
您可以使用setInterval
每0.5秒检查一次鼠标位置
setInterval(step, 500);
function step() {
// do your stuff here
}
函数step
将每0.5秒执行一次。
相关文章:
- JsFiddle上的鼠标事件不起作用
- node-webkit-从父窗口捕获iframe鼠标事件
- 鼠标事件在OpenLaszlo应用程序中不起作用
- 为画布绘图添加鼠标事件
- 如何在元素中处理鼠标事件,但不能在其子元素上处理
- KineticJS鼠标事件问题
- GWT-允许鼠标事件在两个叠加画布之间传播
- 为什么不是't html<对象>元素响应鼠标事件
- 如何恢复Kinetic.js鼠标事件
- 鼠标事件's在CtrlKey不起作用的情况下单击
- 鼠标事件,我的代码出了什么问题
- 撤消javascript中的所有鼠标事件处理程序
- JQuery facebook订阅插件鼠标事件
- Javascript/jQuery-鼠标事件没有在html上触发,添加了动态
- React模板鼠标事件在容器's鼠标事件
- 使用两个重叠的画布,我可以将鼠标事件传递到底部的画布吗
- 谷歌地图 api v3 搜索多边形没有鼠标事件
- CSS 溢出边界半径鼠标事件
- 将触摸事件转换为鼠标事件仅每秒有效一次
- D3.js鼠标事件不起作用