全局mouseMove

Jac*_*oed 3 javascript jquery

我已经在基于jQuery的网站中使用了以下JavaScript。它的作用是向上/向下移动滑块,并在较高/较小的位置上方缩放项目。

一切正常,但是由于滑块的高度只有几个像素,并且移动事件有点慢(它不会为每个像素触发),因此当我快速移动鼠标时,滑块将无法保持按住状态鼠标移出滑块项。因为已绑定到滑块,所以将不再触发mouseMove事件。我想可以通过将mouseMove全局设置为整个站点来解决所有问题,但是它不起作用,或者至少我不知道如何使它起作用。它应该绑定到文档还是正文?

这是我当前的滑块代码:

$.fn.resize = function (itemToResize) {

MinSize = 100;
MaxSize = 800;

pageYstart = 0;
sliderMoveing = false;
nuskriverHeight = 0;

this.mousedown(function(e) {
 pageYstart=e.pageY;
 sliderMoveing = true
 nuskriverHeight = parseFloat((itemToResize).css('height'));
});

this.mouseup(function() { 
 sliderMoveing = false 
});

this.mousemove(function(e) {
 if (sliderMoveing) { 
  (itemToResize).css('height', (nuskriverHeight + (e.pageY - pageYstart))); 
  if (parseFloat( (itemToResize).css('height')) > MaxSize) { (itemToResize).css('height', MaxSize) };
  if (parseFloat( (itemToResize).css('height')) < MinSize) { (itemToResize).css('height', MinSize) };
 };
}); 
Run Code Online (Sandbox Code Playgroud)

};

谢谢您的帮助,不胜感激

use*_*716 5

将鼠标事件放在 document

var $doc = $(document);

this.mousedown(function(e) {
  pageYstart=e.pageY;
  sliderMoveing = true
  nuskriverHeight = parseFloat((itemToResize).css('height'));

  $doc.mouseup(function() { 
    sliderMoveing = false ;
    $doc.unbind('mousemove mouseup')
  });

  $doc.mousemove(function(e) {
    if (sliderMoveing) { 
     (itemToResize).css('height', (nuskriverHeight + (e.pageY - pageYstart))); 
     if (parseFloat( (itemToResize).css('height')) > MaxSize) { (itemToResize).css('height', MaxSize) };
     if (parseFloat( (itemToResize).css('height')) < MinSize) { (itemToResize).css('height', MinSize) };
    };
  }); 

});
Run Code Online (Sandbox Code Playgroud)