gpt4 book ai didi

jquery - 使 HTML5 视频可拖动而不丢失控件

转载 作者:行者123 更新时间:2023-12-03 22:38:01 25 4
gpt4 key购买 nike

我在这个 jsfiddle 中有一个 HTML5 视频播放器 - http://jsfiddle.net/6B7w7/效果很好。当您单击“Video1 - BranFerren”行时,视频将加载并播放,并且控件工作正常:

<div id="video1" class="video_link">Video 1 - BranFerren &nbsp&nbsp<b>6:15</b></div>

<div id="videoPlayer_wrapper">
<video id="videoPlayer" width="600" height="340" controls >
</video>
</div>

但我希望能够在播放时将播放器拖动到屏幕的不同部分。因此,我尝试使视频播放器本身 #videoPlayer 或 videoPlayer 包装 div #videoPlayer_wrapper 在 JavaScript 的第 3 行和第 4 行中可拖动。

 3   //$('#videoPlayer_wrapper').draggable();
4 //$('#videoPlayer').draggable();

取消注释这两行中的任何一行都可以使视频播放器可拖动,但是我无法再在视频控件上设置位置或音频 slider 。

有谁知道如何使视频可拖动并仍然能够控制播放位置和音量?

谢谢

最佳答案

添加两项额外的事件检查,一项针对 mousedown,一项针对 mouseup

mousedown 上检查相对于视频的 y 坐标。如果在控制部分禁用draggable,如果不允许。

mouseup 处理程序中始终启用可拖动功能,以便元素可拖动,直到下一次检查鼠标位置。

这样,点击事件就不会传递给浏览器的拖动处理。

Demo here

$('#videoPlayer').on('mousedown', function (e) {

var wrapper = $('#videoPlayer_wrapper'), // calc relative mouse pos
rect = wrapper[0].getBoundingClientRect(),
y = e.clientY - rect.top;

if (y > $('#videoPlayer')[0].height - 40) { // if in ctrl zone disable drag
wrapper.draggable('disable');
}
});

$('#videoPlayer').on('mouseup', function (e) {
$('#videoPlayer_wrapper').draggable('enable'); // always enable
});

希望这有帮助!

关于jquery - 使 HTML5 视频可拖动而不丢失控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22826180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com