Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 传单,复制/调用拖动事件_Javascript_Angular_Leaflet_Draggable_Drag - Fatal编程技术网

Javascript 传单,复制/调用拖动事件

Javascript 传单,复制/调用拖动事件,javascript,angular,leaflet,draggable,drag,Javascript,Angular,Leaflet,Draggable,Drag,我在我的项目中使用了Angular 6和传单1.2 我想重现当用户在传单地图上保持右键或左键单击时的拖动效果。 例如,我希望能够在不断按空格键时开始拖动地图 我已经测试了很多特性,比如在传单地图上调用“mousedown”、“mouseup”、“click”、“drag”、“dragstart”事件,但是什么都没有发生;事件正在正确调用,但未发生拖动事件 我仍然在阻止它,而网络似乎没有搜索这个功能:o 谢谢你的帮助! 关于您可以轻松添加事件侦听器,以便在按下空格键时进行检测。但是,您需要有一些方

我在我的项目中使用了Angular 6和传单1.2

我想重现当用户在传单地图上保持右键或左键单击时的拖动效果。 例如,我希望能够在不断按空格键时开始拖动地图

我已经测试了很多特性,比如在传单地图上调用“mousedown”、“mouseup”、“click”、“drag”、“dragstart”事件,但是什么都没有发生;事件正在正确调用,但未发生拖动事件

我仍然在阻止它,而网络似乎没有搜索这个功能:o

谢谢你的帮助!
关于

您可以轻松添加事件侦听器,以便在按下空格键时进行检测。但是,您需要有一些方法来告诉地图移动的方向。假设您也希望通过键盘执行此操作,下面是一些示例代码,用于在按住空格键时通过箭头键添加/删除滚动

function scrollMap(e) {
  const key = e.key;
  if (key == 'ArrowUp'){
   //scroll map 100px up, or whatever you want
  }
  //repeat for other arrow keys, or inputs of your choice
}

document.addEventListener('keydown', (event) => {
  const key = event.code;
  if (key == 'Space'){
    listen();
  }
 });

document.addEventListener('keyup', (event) => {
  const key = event.code;
  if (key == 'Space'){
    stopListen();
   }
 });

function listen(){
  document.addEventListener('keypress', scrollMap);      
}

function stopListen(){
   document.removeEventListener('keypress', scrollMap);
}
注释

1) 根据页面布局,最好将事件附加到地图元素,而不是文档

2) event.code与event.key等的选择将取决于您的目标浏览器。有关更多信息,请参阅


3) 您可能希望使用shift/ctrl/alt来代替空格键,因为它们内置在键盘事件中,因此更容易检测和使用跨浏览器。有关更多信息,请参见

您好!谢谢你的回复。事实上,我没有正确解释这个问题:/I我想保留移动光标时产生的拖动效果。我不想按固定的像素数拖动地图。默认的键盘箭头已经做得很好了。我只想以不同的方式调用拖动事件,例如按空格键,然后移动鼠标拖动地图。我刚刚尝试了另一件事:我将“窗口”对象上的事件侦听器附加到跟踪“mousemove”事件上,并通过MouseEvent的movementX和movementY使用panBy()方法拖动我的地图。如果您只想通过按住空格键启用/禁用标准鼠标拖动,那么只需设置您的地图。dragging.enable()或disable()在上面的document.addEventListener函数中,而不是在listen()/stopListen()中,如果地图是使用draging:false选项集创建的,则上面的函数只允许在按住空格键时通过拖动鼠标移动地图。正确吗?这就是你想要做的吗?是的,我想这样做,而不需要在地图上单击(左/右单击)来开始拖动。如果你不想使用键盘或鼠标移动来平移地图,你希望用户如何能够沟通他们希望地图移动到的位置?