html 通过坐标上的委托点击事件点击覆盖div到画布

neskvpey  于 2022-12-16  发布在  其他
关注(0)|答案(1)|浏览(143)

我有一个画布应用程序,没有内置的缩放和平移解决方案。
我的解决方案是在画布上覆盖指针事件:all和opacity:0,以便您可以缩放和平移。
我现在的问题是把一个点击从覆盖层委托给画布。现在我的想法是把触摸点击的坐标和模拟这个点击再次与指针事件:没有,但它不工作。

$(document).on('touchstart', function (event) {
  showCoordinates(event);
});

function showCoordinates(event) {
  var x = event.touches[0].clientX;
  var y = event.touches[0].clientY;
  console.log(x);
  console.log(y);
  $('#overlay').css('pointer-events','none');
  var myEvent = $.Event( "touchstart", { pageX:x, pageY:y } );
  $("body").trigger( myEvent );
  $('#overlay').css('pointer-events','all');
}

我的主要问题是在这里模拟点击

var myEvent = $.Event( "touchstart", { pageX:x, pageY:y } );
$("body").trigger( myEvent );

它甚至在谷歌Chrome控制台中都不能工作,我在这里做错了什么?

alen0pnh

alen0pnh1#

第一个问题是您创建的事件没有showCoordinates函数中使用的event.touches[0].clientXevent.touches[0].clientY属性。

var myEvent = $.Event( "touchstart", { pageX:x, pageY:y } );

var myEvent = $.Event( "touchstart", { touches: [{clientX: x, clientY: y}] } );

。在最后一行,给xy给予。很有可能,你会遇到新的问题,比如无限递归。给一些HTML代码,这样你可以更好地提供帮助。我想,有一个更简单的解决方案。

相关问题