mouseup和mousemove的javascript/jquery事件问题 var vol_drag=false; $('.video volume wrapper').on('mousedown','div',函数(e){ 体积阻力=真; 更新卷(e.pageX) }); $(文档).on('mousemove',函数(e){ 如果(卷拖动===真){ 更新卷(e.pageX); } }); $(文档).on('mouseup',函数(e){ 如果(卷拖动===真){ vol_drag=false; 更新卷(e.pageX); } }); 功能更新卷(x){ var bar=$('.video bar-inner-wrapper'); var max_vol=max_vol_pos; var位置=x-音量条开始位置; var curr_vol=parseFloat((位置-0)/(最大值-0)); 如果(当前卷>1){ 货币体积=1; } 如果(当前体积

mouseup和mousemove的javascript/jquery事件问题 var vol_drag=false; $('.video volume wrapper').on('mousedown','div',函数(e){ 体积阻力=真; 更新卷(e.pageX) }); $(文档).on('mousemove',函数(e){ 如果(卷拖动===真){ 更新卷(e.pageX); } }); $(文档).on('mouseup',函数(e){ 如果(卷拖动===真){ vol_drag=false; 更新卷(e.pageX); } }); 功能更新卷(x){ var bar=$('.video bar-inner-wrapper'); var max_vol=max_vol_pos; var位置=x-音量条开始位置; var curr_vol=parseFloat((位置-0)/(最大值-0)); 如果(当前卷>1){ 货币体积=1; } 如果(当前体积,javascript,jquery,html,html5-video,Javascript,Jquery,Html,Html5 Video,我有一段代码,允许我控制HTML5视频元素的音量,但有时在我拖动音量滑块并释放鼠标按钮(mouseup事件)之后mousemove仍然被激活,导致滑块卡在光标下的效果,即使mouseup应该将vol_drag变量设置为false,并且应该阻止mousemove事件的发生。有没有人有过这样的经历,如何解决?谢谢。您可能想尝试[videojs lib]()而不是直接使用视频标签,它将帮助您处理所有事件,而且使用起来很方便。如果鼠标离开文档框架,则会发生这种情况。尝试通过检查文档鼠标移出事件来解决此问

我有一段代码,允许我控制HTML5视频元素的音量,但有时在我拖动音量滑块并释放鼠标按钮(mouseup事件)之后mousemove仍然被激活,导致滑块卡在光标下的效果,即使mouseup应该将vol_drag变量设置为false,并且应该阻止mousemove事件的发生。有没有人有过这样的经历,如何解决?谢谢。

您可能想尝试
[videojs lib]
()而不是直接使用视频标签,它将帮助您处理所有事件,而且使用起来很方便。如果鼠标离开文档框架,则会发生这种情况。尝试通过检查文档鼠标移出事件来解决此问题。@supercolhandsomegelboy我添加了mouseout检查。它解决了此问题,但创建了一个新的问题。由于mouseout不断将vol_drag设置为false,滑块不再正常工作。看起来,您可以尝试忽略我以前的解决方案,并将文档更改为窗口。我也不确定,所以请看看它是否有效。嗨,你能试着解决你的问题吗?你可能想试试
[videojs lib]
(),而不是直接使用视频标签。它将帮助你处理所有事件,而且很容易使用。如果鼠标离开文档框架,这种情况就会发生。尝试通过检查文档鼠标移出事件来解决此问题。@supercolhandsomegelboy我添加了mouseout检查。它解决了此问题,但创建了一个新的问题。由于mouseout不断将vol_drag设置为false,滑块不再正常工作。看起来,您可以尝试忽略我以前的解决方案,并将文档更改为窗口。我也不确定,所以请看看它是否有效。嗨,你能试着解决你的问题吗?
var vol_drag = false;
$('.video-volume-wrapper').on('mousedown', 'div', function(e){
  vol_drag = true;
  update_volume(e.pageX)
});

$(document).on('mousemove', function(e){
  if(vol_drag === true){
    update_volume(e.pageX);
  }
});

$(document).on('mouseup', function(e){
  if(vol_drag === true){
    vol_drag = false;
    update_volume(e.pageX);
  }
});


function update_volume(x){
  var bar = $('.video-bar-inner-wrapper');
  var max_vol = max_vol_pos;
  var position = x - vol_bar_start_pos;
  var curr_vol = parseFloat((position-0)/(max_vol-0));

  if(curr_vol > 1){
    curr_vol = 1;
  }

  if(curr_vol < 0){
    curr_vol = 0;
  }

  $('.volume-position').css({'left':(curr_vol*100)+'%'});
  $('.video-volume-bar').css('width',(curr_vol*100)+'%');
  video.volume = curr_vol;
};