Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript&;jQuery;如何进行捕捉拖放_Javascript_Jquery_Drag And Drop - Fatal编程技术网

JavaScript&;jQuery;如何进行捕捉拖放

JavaScript&;jQuery;如何进行捕捉拖放,javascript,jquery,drag-and-drop,Javascript,Jquery,Drag And Drop,我正在从你们这些优秀的人那里寻求关于抓拍拖放的最佳方法的建议 作为一个简单的棋盘游戏的一部分,我目前正在用JS(使用jQuery for effects)编写代码,用户应该能够将瓷砖从停靠点拖到网格上 如何完成以下目标(最好使用jQuery) 启用拖放到网格上 确保在拖放过程中项目捕捉到网格的每个正方形 如果瓷砖完全脱离网格放置,则返回原始位置(停靠) 如果平铺位于栅格上方(此时已捕捉),则将当前x&y返回到函数 使任何被拖动的瓷砖略微透明,并在到位后使用全彩或返回码头 很抱歉问这么大的问题,我

我正在从你们这些优秀的人那里寻求关于抓拍拖放的最佳方法的建议

作为一个简单的棋盘游戏的一部分,我目前正在用JS(使用jQuery for effects)编写代码,用户应该能够将瓷砖从停靠点拖到网格上

如何完成以下目标(最好使用jQuery)

  • 启用拖放到网格上
  • 确保在拖放过程中项目捕捉到网格的每个正方形
  • 如果瓷砖完全脱离网格放置,则返回原始位置(停靠)
  • 如果平铺位于栅格上方(此时已捕捉),则将当前x&y返回到函数
  • 使任何被拖动的瓷砖略微透明,并在到位后使用全彩或返回码头
  • 很抱歉问这么大的问题,我只是在网上找不到任何准确的建议来帮助我实现这个目标

    非常感谢,

    编辑:答案
    1和2通过“可拖动”解决:
    3通过“可拖放”解决
    4通过上述方法进行验证,然后验证
    $(this).position.left
    &&
    $(this.position.top

    5通过一个简单的
    $(this).css({opacity:0.5})
    在拖动开始时内部,在拖动结束时内部


    傻瓜

    希望这对您有所帮助,这是用于使用管理单元jQuery进行拖放的

    var snap = 10; /* the value of the snap in pixels */
    var l,t,xInit,yInit,x,y;
    $(document).mousemove(function(e) {
      x = e.pageX;
      y = e.pageY;
      drag(snap);
    });
    
    $('#obj').mousedown(function(e){
      l=$('#obj').position().left;
      t=$('#obj').position().top;
      xInit = e.pageX;
      yInit = e.pageY;
    })
    
    
    function drag(snap){
        w=$('#obj').width();
        h=$('#obj').height();
        var left = l+x-xInit;
        var top = t+y-yInit;
      if(!snap==0){
        left = (left/snap).toFixed()*snap;
        top = (top/snap).toFixed()*snap;
        $('#obj').css('left',left);
        $('#obj').css('top',top);
      }else{
        $('#obj').css('left',left);
        $('#obj').css('top',top);
      }
    }
    

    你看过了吗?这个问题应该分为几个单独的问题。一些涉及jQuery插件、一些游戏机制和一些显示/图形。