【问题标题】:simulate a mouse down and up on a canvas html5 page在画布 html5 页面上模拟鼠标上下
【发布时间】:2013-08-24 06:47:42
【问题描述】:

如何在 aspx 页面的画布 hmtl5 部分模拟鼠标按下然后鼠标向上事件?

我在网上搜索并找到了这个......但我无法将它与我的画布 html5 元素相关联,有人可以帮忙吗?

dispatchMouseEvent(element, 'mouseover', true, true);
dispatchMouseEvent(element, 'mousedown', true, true);
dispatchMouseEvent(element, 'click', true, true);
dispatchMouseEvent(element, 'mouseup', true, true);

【问题讨论】:

  • 您可能会找到this 之一。请阅读完整的答案。 dispatchMouseEvent 是这里的用户定义函数。

标签: javascript asp.net html


【解决方案1】:

“模拟”事件非常简单,实际上,您可以简单地触发它们。使用 jQuery,这变得很简单(参见this jsfiddle 的工作示例):

$('#canvas_element').on("mousedown mouseup", function(e) {
console.log(e.type + " event fired at coords: " + e.pageX + ", " + e.pageY);
});

x_coord = 1;
y_coord = 1;

var e = jQuery.Event( "mousedown", { pageX: x_coord, pageY: y_coord } );
$('#canvas_element').trigger(e);

// execute more code
x_coord = 255;
y_coord = 255;

var e = jQuery.Event( "mouseup", { pageX: x_coord, pageY: y_coord } );
$('#canvas_element').trigger(e);

请参阅this old SO question 了解纯 JavaScript 解决方案。

【讨论】:

  • 所以我的画布元素被称为“myCanvas”。我将如何使用上面的代码模拟鼠标向下和向上事件?
  • 我尝试将上面的代码放在一个函数中,当函数启动时,代码永远不会被调用。
  • 您提出的问题几乎都是基本问题,jQuery selectors 应该是一个不错的开始。另外,请注意,上面的代码实际上依赖于jQuery 库。如果您不打算在代码中的某个位置实际执行函数,那么声明函数当然是没有意义的。
  • 那么代码 sn-p 在函数 A() 中。函数被调用,函数中的所有其余代码都被执行,除了模拟 sn-p 的 jquery 事件部分。
  • pageXpageY 是只读属性。你经理是怎么给他们写信的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-17
  • 2013-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-30
  • 1970-01-01
相关资源
最近更新 更多