网页端没有直接的api可以实现鼠标点击,移动等操作。
我目前的思路是,自己创建点击,移动等事件,然后通过元素的dispatchEvent方法,直接把事件发给目标元素。但是这种方式非常麻烦,需要先找到监听鼠标操作的元素,然后才能用dispatchEvent方法,没有通用性,有没有更好的思路或方法。
三种操作的封装function creatpointerdown(x, y, offsetX, offsetY) {
let downEvent = new PointerEvent("pointerdown", {
pointerId: 1,
bubbles: true, //如果事件是冒泡类型,则返回 true,否则返回 fasle。
button: 0, // 按下 0(通常是左按钮) 移动时为-1
buttons: 1, // pointerdown 1(通常是左键) pointerup时候为 0(没有键被按下)
cancelable: true, //如果用 preventDefault() 方法可以取消与事件关联的默认动作,则为 true,否则为 fasle。
composed: true, //用来指示该事件是否可以从 Shadow DOM 传递到一般的 DOM。
pointerType: "mouse",
which: 1, //按下和抬起为1 移动时为0
width: 1, //触摸的物体,与屏幕接触的面积
height: 1, //触摸的物体,与屏幕接触的面积
isPrimary: true, //是否为主指针
isTrusted: true,