Vue mousemove仅在mousedown之后

2024-02-22

如何仅在首先单击元素时触发鼠标移动? 我正在尝试将其用于音频播放器时间线。

.player__time--bar(@mousedown="setNewCurrentPosition($event)")
    .slider(role="slider" aria-valuemin="0" :aria-valuenow="currentPosition" :aria-valuemax="trackTotalDuration" aria-orientation="horizontal")
        .player__time--bar-current-position(:style="{width:  (100 / (trackTotalDuration / currentPosition)) + '%'}")

方法:

setNewCurrentPosition(e) {
    let tag = e.target
    // if the click is not on 'slider', grab div with class 'slider'
    if (e.target.className === 'player__time--bar') tag = e.target.firstElementChild
    else if (e.target.className === 'player__time--bar-current-position') tag = e.target.parentElement
    const pos = tag.getBoundingClientRect()
    const seekPos = (e.clientX - pos.left) / pos.width
    this.currentPosition = parseInt(this.trackTotalDuration * seekPos)
    // updates the time in the html
    this.$refs.player.currentTime = this.currentPosition
},

你会想要有一个mousedown元素上的侦听器,设置一个变量来指示拖动开始。在窗口上放置一个监听器来捕获mouseup任何地方并取消设置变量。

你可以把mousemove如果您只对元素内部发生的拖动感兴趣,则在元素上。否则你可以把mousemove监听器开启window所以你到处都能发现它。

new Vue({
  el: '#app',
  data: {
    dragging: false,
    x: 'no',
    y: 'no'
  },
  methods: {
    startDrag() {
      this.dragging = true;
      this.x = this.y = 0;
    },
    stopDrag() {
      this.dragging = false;
      this.x = this.y = 'no';
    },
    doDrag(event) {
      if (this.dragging) {
        this.x = event.clientX;
        this.y = event.clientY;
      }
    }
  },
  mounted() {
    window.addEventListener('mouseup', this.stopDrag);
  }
});
.dragstartzone {
  background-color: red;
}
<script src="//cdnjs.cloudflare.com/ajax/libs/vue/2.4.2/vue.min.js"></script>
<div id="app">
  <div class="dragstartzone" @mousedown="startDrag" @mousemove="doDrag">Start dragging here</div>
  <div>X: {{x}}, Y: {{y}}</div>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue mousemove仅在mousedown之后 的相关文章

  • Oo 任何 IDE 中的 javascript 代码补全

    你知道有什么IDE可以自动完成这种代码吗 我这里有一个 javascript 类生成器 function var core bind function method scope if method instanceof Function t
  • 取消html5浏览器中的单图请求

    我正在动态加载 大 图像以绘制到 html5 画布中 如下所示 var t new Image t onload t src http myurl 但每隔一段时间就会想取消图片请求完全地 我想出的唯一方法是设置src to i e t sr
  • 用隐藏单元格补充 colspanned 表格有什么不好吗?

    我一直在表格上开发一些排序和选择功能 我发现在具有跨单元格的表格中定位非常困难 我只是添加了跨区单元格并将其隐藏 它看起来不错 它与我的 js 一起工作 非常适合索引 但我想知道这是否是合法的方法 stuffing display none
  • 非 DOM 对象上的 jQuery 自定义事件

    我最近阅读了一些代码 其功能如下 bob name Bob Smith rank 7 bob bind nameChanged function bob trigger nameChanged 这似乎有效 但我在 jQuery 文档或源代码
  • 在网页上的文本框中键入内容时删除所有空格

    我如何在用户打字时即时删除输入到文本框中的空格 function var txt myTextbox var func function txt val txt val replace s g txt keyup func blur fun
  • Ember.js 处理 View 事件后转换到路由

    Setup 我有一个 Ember 应用程序 支持使用 Imgur API 上传图像 我已经有一个工作路线和模板来处理任何 Imgur ID 但我想在上传新图像后转换到此路线 使用返回的 Imgur ID 这是该应用程序的相关部分 http
  • javascript中按tab键时如何调用函数?

    我有一个这样的功能 function whenEmpty field if field value field style backgroundColor ffcccc alert Please fill the field field f
  • 如果链接包含特定文本,jQuery 将类添加到 href

    我的网站上的列表中有一些动态填充的链接 这些链接链接到文件 是否可以使用 jQuery 查看文件名是否以 pdf 结尾 并在 href 或类似的链接文本以 mp3 结尾时添加一个类 例如 我的列表中有以下链接 文件1 pdf 歌曲1 mp3
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • 未捕获的错误:找不到模块“jquery”

    我在用Electron https github com atom electron制作桌面应用程序 在我的应用程序中 我正在加载一个外部站点 Atom 应用程序之外 可以说http mydummysite index html http
  • 使用 JS 合并具有相同值的相邻 HTML 表格单元格

    我已经为此苦苦挣扎了一段时间 我有一个根据一些 JSON 数据自动生成的表 该数据可能会有所不同 我想合并第一列中具有相同值的相邻单元格 例如此表中的 鱼 和 鸟 table tr td fish td td salmon td tr tr
  • JS用正则表达式替换数字

    我有元素的标识符 如下所示 form book 1 2 3 我想要的是用其他值替换该标识符中的第二个数字 我将函数 match 与以下正则表达式一起使用 var regexp d d d 但它返回我包含的数组 1 2 3 2 因此 当我尝试
  • vue-test-utils:如何测试 Mounted() 生命周期挂钩中的逻辑(使用 vuex)?

    我正在尝试为 Vue 中的逻辑编写一个单元测试mounted 生命周期钩子 但运气不太好 问题似乎是这样的mounted 使用 vue test utils 安装组件时永远不会被调用mount 这是我要测试的 Vue 组件
  • Chartjs刻度标签位置

    尝试让 Y 轴刻度标签看起来像image https i stack imgur com XgoxX png 位于秤顶部且不旋转 缩放选项当前如下所示 scales yAxes id temp scaleLabel display true
  • Select2 下拉列表动态添加、删除和刷新项目

    这让我发疯 为什么 Select2 不能在其页面上实现清晰的方法或示例如何在 Select2 上进行简单的 CRUD 操作 我有一个 select2 从 ajax 调用获取数据
  • 如果数字小于 10,则显示前导零 [重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 相当于 printf string format https stackoverflow com questions 610406 javascript equivalent t
  • 数据表日期范围过滤器

    如何添加日期范围过滤器 like From To 我开始进行常规搜索和分页等工作 但我不知道如何制作日期范围过滤器 我正在使用数据表 1 10 11 版本 My code var oTable function callFilesTable
  • 防止文本区域出现新行

    我正在开发聊天功能 使用 Vue 并使用文本区域作为输入 以便溢出换行 并且对于编写较长消息的用户来说更具可读性 不幸的是 当用户按下 Enter 键并提交时 光标会在提交之前移动到新行 从而使用户体验感觉不佳 关于如何使用普通 Javas
  • 使用异步调用时如何从 javascript 更新元刷新?

    我有一个系统 它使用元刷新来注销页面 该系统会在空闲用户后进行清理 不用担心 服务器也会导致会话超时 我开始通过 ajax 进行一些操作 不是真正的 xml 但这不是重点 我可以运行从异步请求返回的javascript 所以我想知道是否可以
  • KeyboardAvoidingView - 隐藏键盘时重置高度

    我正在使用 React NativeKeyboardAvoidingView设置我的高度View当显示键盘时 但是当我关闭应用程序中的键盘时 视图的高度不会变回原来的值

随机推荐

  • 如何将

    我有一个 div 我想旋转 90 度 div div 我怎样才能做到这一点 你需要 CSS 来实现这一点 例如 container 2 webkit transform rotate 90deg moz transform rotate 9
  • 根据方位角和距离计算纬度和经度

    我很难理解三角学 我试图从起始纬度 对数 距离和方位推断出目的地纬度和经度 幸运的是 我发现了一个很棒的网站 它准确地描述了我需要的功能 http www movable type co uk scripts latlong html ht
  • 如何检查 alamofire 中的互联网连接?

    我正在使用下面的代码在服务器中发出 HTTP 请求 现在我想知道它是否连接到互联网 下面是我的代码 let request Alamofire request completeURL domainName path method metho
  • 使用Output0Buffer类时SSIS脚本转换错误

    我试图通过提供用 c 编写的脚本来帮助我们的 dba 以便他可以在他的 ScriptComponent 中使用它 我有一个输入文件 逐行处理它并在 Output0Buffer 中创建一行 如中所述 我已经编写了测试方法并且工作正常 但是在将
  • 如何使用邮递员发布对象和列表

    我在用邮递员打包的应用程序 https chrome google com webstore detail postman fhbjgbiflinjbdggehcddcbncdddomop hl en发送帖子请求 我想请求以下控制器 如何使
  • 给定的 ColumnMapping 与源或目标中的任何列都不匹配

    我不知道为什么我会遇到上述异常 请有人看看 DataTable DataTable Time new DataTable Star Schema Dimension Time DataColumn Sowing Day new DataCo
  • 在选项卡栏控制器 -> 导航控制器 -> 视图控制器的层次结构中旋转视图控制器

    我的应用程序的视图控制器层次结构设置如下 UITabBarController UINavigationController UIViewController UINavigationController UIViewController
  • 有没有 SMTP 转 HTTP 的免费服务(Email 转 POST)?

    有人向我指出了该服务smtp2web http www smtp2web com 不久前 但我一直在尝试 但似乎不起作用 还有其他人吗 有什么方法可以在红宝石中实现这一点吗 我写一封电子邮件并发送给lanceJpollard smtp2we
  • 如何在没有 SSL 的情况下接受 Web API 上的身份验证?

    我正在构建一个与以下内容非常相似的 Web API堆栈溢出 http api stackoverflow com提供 然而 就我而言 安全很重要 因为数据是私有的 我必须使用 HTTP 我无法使用 SSL 您向我推荐什么解决方案 EDIT
  • 如何根据某些正则表达式模式提取字符串的“部分”?

    在 JavaScript 中 给定一个正则表达式模式和一个字符串 var pattern this 0 9a zA Z that 0 9a zA Z var str this 12 that 34 如何返回包含以下内容的数组 12 34 以
  • 如何将 .scss 文件作为全局导入到 app.js 父文件中?

    我正在启动一个 Angular 项目 并按照以下步骤导入 scss 文件 https github com AngularClass angular starter wiki How to include SCSS in component
  • 为什么使用 ARC + NSZombieEnabled 时对象未释放

    我将我的应用程序转换为 ARC 并注意到当视图控制器被释放时 在我的视图控制器之一中分配的对象没有被释放 我花了一段时间才弄清楚原因 我在调试时为我的项目启用了 启用僵尸对象 结果证明这就是原因 考虑以下应用程序逻辑 1 用户调用actio
  • 在 3D 空间中旋转图像的一部分

    设置如下 这是一个电子商务艺术网站 其中一些绘画是画布转移 这幅画环绕画布的侧面 顶部和底部 我们拥有整幅画的高分辨率图像 但我们想要显示的是图像的准 3D 表示 您可以在其中看到画作的侧面如何环绕画布 这是我正在谈论的内容的粗略草图 我的
  • 尝试在 openSUSE 上安装 pip 时出错

    我正在尝试部署pip在我的生产服务器上 但有一个不合逻辑的错误 它尝试安装已安装的组件但没有成功 gt sudo zypper in python pip Loading repository data Reading installed
  • iText:使用 LocationTextExtractionStrategy 从 pdf 文件中提取的文本顺序错误

    我正在使用 iText 从特定位置的 pdf 文件中提取一些文本 为此 我使用 LocationTextExtractionStrategy public static void main String args throws Except
  • 实施“more”Unix实用程序命令

    我正在努力实施more命令 我想知道如果有管道我该如何理解 例如 如果我从 shell 中输入 cat file1 file2 more 我怎样才能在 more 的实现中处理这个问题 并且是实施more可以开源吗 实际上 我无法成功读取 s
  • 使用 Selenium Webdriver 测试某个元素是否获得焦点

    我真的很惊讶我在互联网上找不到使用 Selenium Webdriver 测试元素焦点的参考资料 我想检查当尝试提交表单但缺少必填字段时 焦点何时移至空字段 但我看不到任何使用 WebDriver API 执行此操作的方法 我将能够使用找到
  • 如何获取给定 ascii 值的字符

    如何获取给定 ascii 代码的 ascii 字符 例如我正在寻找一种方法 给定代码 65 将返回 A Thanks 您的意思是 A astring 或 A 一个char int unicode 65 char character char
  • 在 Python 中搜索对象列表

    假设我正在创建一个简单的类 其工作方式与 C 风格结构类似 仅保存数据元素 我试图弄清楚如何在对象列表中搜索属性等于特定值的对象 下面是一个简单的例子来说明我正在尝试做的事情 例如 class Data pass myList for i
  • Vue mousemove仅在mousedown之后

    如何仅在首先单击元素时触发鼠标移动 我正在尝试将其用于音频播放器时间线 player time bar mousedown setNewCurrentPosition event slider role slider aria valuem