首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不单击jQuery .draggable

不单击jQuery .draggable
EN

Stack Overflow用户
提问于 2013-08-11 21:41:12
回答 1查看 670关注 0票数 1

我在做拖曳式潜水。为此,我使用jquery .draggable函数,但这并不完全是我所需要的。

代码语言:javascript
复制
$('.magic_background').draggable({
            cursor: 'move', 
            containment: '.magic_movable'
        }); 

我需要DIV是可拖动的,而不需要点击它(使用mousemove的功能)。另外,我需要移除拖动光标,我想要的功能是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-11 22:09:01

编辑

看起来更好的没有jQuery UI,至少在Chrome.中工作。

现场演示

代码语言:javascript
复制
$(function(){

  var $par = $('.magic_movable'),
      $bg = $('.magic_background'),
      parW = $par.outerWidth(),
      parH = $par.outerHeight(),
      bgW = $bg.width()/2,
      bgH = $bg.height()/2,
      X, Y, posX, posY;

  var drag = 0; // flag


  $par.on('mousemove', function( e ){
    X = e.clientX - $(this).offset().left; // get mouse X position inside parent
    Y = e.clientY - $(this).offset().top;  // get mouse Y position inside parent
    posX = Math.min( Math.max(0, X-bgW), parW-(bgW*2) ); // containment X
    posY = Math.min( Math.max(0, Y-bgH), parH-(bgH*2) ); // containment Y
    if(drag){
       $bg.css({left:posX, top:posY}); // move element only if flag is true (1)
    }
  }).on('mouseleave', function(){
    drag = 0;                  // stop draggable on parent mouseleave
  });

  $bg.on('mouseenter', function( e ){
     drag = 1;                 // make draggable on mouseenter
  });

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

https://stackoverflow.com/questions/18176988

复制
相关文章

相似问题

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