如果mousedown则触发mousemove否则不执行任何操作

阿斯伯格

我遇到了一个技术问题,我不确定最好的解决方法是什么。

基本上,我在音频进度条上工作,用户可以在其中更改歌曲的位置。这可以通过单击或按住鼠标并移动它来完成。

elem.addEventListener("mouseup", function(event){
  elem.removeEventListener("mousemove", fn);
});

elem.addEventListener("mousedown", function(event){
  elem.addEventListener("mousemove", function(event){
      // Stuff to do
  }, fn);
});

所以本质上:

如果按住鼠标然后移动鼠标,请执行某些操作。如果释放鼠标,请防止触发mousemove

我知道如果继续执行此操作可能会奏效,但对我来说似乎是一团糟。我不想养成不良习惯。

我的问题是:如何使用最佳做法来使这项工作有效?

注意:我也尝试了以下方法:

function fn(event) {
if(event.button == 0) {
      elem.addEventListener("mousemove", function(event){
          // Stuff to do
      });
}
}

我在这里想念的东西!

玩世不恭

不要添加/删除侦听器,只需在触发操作中相应地设置一个变量即可:

var isMousedown = false;

elem.addEventListener("mousedown", function (event) {
    isMousedown = true;
}

elem.addEventListener("mouseup", function (event) {
    isMousedown = false;
});

elem.addEventListener("mousemove", function (event) {
    if (isMousedown) {
        // do stuff
    } else {
        // do different stuff, or nothing
    }
});

您甚至可能希望将mousedown / mouseup侦听器放在父级(甚至是根元素)上,以避免在目标范围之外发生mouseup的情况。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MYSQL更新(如果不存在),否则不执行任何操作

来自分类Dev

MYSQL更新(如果不存在),否则不执行任何操作

来自分类Dev

HIVE:如果存在则替换行中的字符串/模式,否则不执行任何操作

来自分类Dev

如果所选元素可见,则不执行任何操作,否则滚动至该元素

来自分类Dev

仅当fb_id不存在时才插入-否则不执行任何操作-PHP

来自分类Dev

grep PATTERN文件,模式存在时使用gzip,否则不执行任何操作

来自分类Dev

仅选择以字母开头的值的字符串的前两位数字,否则不执行任何操作

来自分类Dev

Visual C#-检查已安装的证书-如果不存在则不执行任何操作

来自分类Dev

T恤-如果文件不存在,则不执行任何操作

来自分类Dev

如何按图像名称删除所有容器,如果已删除,则不执行任何操作

来自分类Dev

如果不存在,则创建文件夹,如果不存在,则不执行任何操作

来自分类Dev

如果/否则不工作 jQuery

来自分类Dev

如果已连接外部显示器{“盖子关闭:不执行任何操作”}否则{“盖子关闭:暂停”}?

来自分类Dev

如果已连接外部显示器{“盖子关闭:不执行任何操作”}否则{“盖子关闭:暂停”}?

来自分类Dev

如果该部分不在字符串中,则MYSQL更新String的一部分;如果存在,则不执行任何操作

来自分类Dev

如果structKeyExists和value是这个,否则执行此操作

来自分类Dev

如果ack找到结果,请执行此操作;否则做

来自分类Dev

如果声明(不执行任何操作)

来自分类Dev

剃刀/同步融合:在异步页面加载中,除非执行操作,否则不会填充treedata

来自分类Dev

获得价值仅适用于使用.first的方法,但是如果我尝试使用.each来为每个项目循环,则不会执行任何操作

来自分类Dev

树枝如果/否则不起作用

来自分类Dev

如果和否则不分配false

来自分类Dev

如果/否则不与null比较

来自分类Dev

如果用户来自站点上一页,则执行此操作,否则执行此操作

来自分类Dev

如果条件是div包含内容,则执行此操作,否则执行该操作

来自分类Dev

applescript中的条件(如果目录为空)执行此操作,否则执行该操作

来自分类Dev

MVC,否则,如果不触发

来自分类Dev

电源按钮不会触发挂起(也不执行任何操作)

来自分类Dev

电源按钮不会触发挂起(也不执行任何操作)

Related 相关文章

  1. 1

    MYSQL更新(如果不存在),否则不执行任何操作

  2. 2

    MYSQL更新(如果不存在),否则不执行任何操作

  3. 3

    HIVE:如果存在则替换行中的字符串/模式,否则不执行任何操作

  4. 4

    如果所选元素可见,则不执行任何操作,否则滚动至该元素

  5. 5

    仅当fb_id不存在时才插入-否则不执行任何操作-PHP

  6. 6

    grep PATTERN文件,模式存在时使用gzip,否则不执行任何操作

  7. 7

    仅选择以字母开头的值的字符串的前两位数字,否则不执行任何操作

  8. 8

    Visual C#-检查已安装的证书-如果不存在则不执行任何操作

  9. 9

    T恤-如果文件不存在,则不执行任何操作

  10. 10

    如何按图像名称删除所有容器,如果已删除,则不执行任何操作

  11. 11

    如果不存在,则创建文件夹,如果不存在,则不执行任何操作

  12. 12

    如果/否则不工作 jQuery

  13. 13

    如果已连接外部显示器{“盖子关闭:不执行任何操作”}否则{“盖子关闭:暂停”}?

  14. 14

    如果已连接外部显示器{“盖子关闭:不执行任何操作”}否则{“盖子关闭:暂停”}?

  15. 15

    如果该部分不在字符串中,则MYSQL更新String的一部分;如果存在,则不执行任何操作

  16. 16

    如果structKeyExists和value是这个,否则执行此操作

  17. 17

    如果ack找到结果,请执行此操作;否则做

  18. 18

    如果声明(不执行任何操作)

  19. 19

    剃刀/同步融合:在异步页面加载中,除非执行操作,否则不会填充treedata

  20. 20

    获得价值仅适用于使用.first的方法,但是如果我尝试使用.each来为每个项目循环,则不会执行任何操作

  21. 21

    树枝如果/否则不起作用

  22. 22

    如果和否则不分配false

  23. 23

    如果/否则不与null比较

  24. 24

    如果用户来自站点上一页,则执行此操作,否则执行此操作

  25. 25

    如果条件是div包含内容,则执行此操作,否则执行该操作

  26. 26

    applescript中的条件(如果目录为空)执行此操作,否则执行该操作

  27. 27

    MVC,否则,如果不触发

  28. 28

    电源按钮不会触发挂起(也不执行任何操作)

  29. 29

    电源按钮不会触发挂起(也不执行任何操作)

热门标签

归档