首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >全局mouseMove

全局mouseMove
EN

Stack Overflow用户
提问于 2010-05-28 20:23:27
回答 3查看 5.5K关注 0票数 3

我已经制作了以下javascript脚本,用于我的基于jQuery的网站。它的作用是向上/向下移动滑块,并将项目放大/缩小。

一切都很好,但是由于滑块的高度只有几个像素,而且move事件有点慢(不是每个像素都会触发),所以当我快速移动鼠标时,滑块不能保持不动,鼠标就会离开滑块项目。mouseMove事件将不再被触发,因为它已绑定到滑块。我想所有的事情都可以通过设置整个站点的全局mouseMove来解决,但是它不会工作,或者至少我不知道怎么做。它应该绑定到文档还是正文?

这是我当前的滑块代码:

代码语言:javascript
复制
$.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) };
 };
}); 

};

感谢您的帮助,我非常感激

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-05-28 20:28:35

将鼠标事件放在document

代码语言:javascript
复制
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) };
    };
  }); 

});
票数 5
EN

Stack Overflow用户

发布于 2010-05-28 20:31:18

mousedown上,您应该将事件处理程序(在document上)绑定到mousemovemouseup

在mouseup处理程序中,您应该再次断开两个全局处理程序的连接。

但是,使用jQuery UI的Draggable可能更简单:http://jqueryui.com/demos/draggable/

票数 1
EN

Stack Overflow用户

发布于 2010-05-28 20:29:22

通常,你会在滑块上观察mousedown (开始拖动),当你拖动的时候,你会在document上的任何地方观察mousemovemouseup (如果你想允许Esc取消等等)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2928887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档