el-slider组件配合视频进度条使用

问题描述

最近在做一个视频回放的进度条,会根据视频当前播放进度,实时更新slide的绑定值,导致如下问题:

当鼠标拖动滑块按钮的时候,如果应用程序中使用过v-model或:value实时改变滑块的绑定值时,不管你把滑块拉到哪里放下,change事件返回的都是改变的那个值(视频播放进度的值),而不是你真实拖动的值。但是当你点击进度的时候,却可以获取到真实的值。

<el-slider

              class="schedule"

              :show-tooltip="false"

              v-model="current"

              :max="total"

              @change="SetPlayPos"

            >

            </el-slider>

暂时解决方式

通过火狐浏览器的调试器,发现类.el-slider__button-wrapper绑定了如下事件,这个类名是控制滑动按钮的拖拽行为的。有了这些,我们只需要鉴定这个类的mousedown,mousemove,mouseup事件,当mousemove时我们记录一下滑动条的拖拽行为(用于控制进度条是否实时更新,当进度条不更新的时候,我们松开鼠标的时候就可以通过change回调获取到真实的进度值),最后,记住mouseup销毁mousemove和mouseup事件,但是不要把原来的事件同时给销毁了

image

有更好的解决方式,欢迎给我留言

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。