使可拖动对象捕捉到父元素AngularJS的右侧和左侧

时间:2014-10-27 14:14:10

标签: javascript angularjs

The green element is the draggable object and the grey parts is the areas where the object starts to snap

我希望我的绿色物体在进入图像的灰色区域时向左或向右滑动,这是可能的,我尝试过angular-snap.js

这是我用于可拖动元素的代码

 angular.module('drag', []).
 directive('draggable', function($document) {
  return function(scope, element, attr) {
    var startX = 0, startY = 0, x = 0, y = 0;
    element.css({
     position: 'relative',
     border: '1px solid red',
     backgroundColor: 'lightgrey',
     cursor: 'pointer',
     display: 'block',
     width: '65px'
    });
    element.on('mousedown', function(event) {
      // Prevent default dragging of selected content
      event.preventDefault();
      startX = event.screenX - x;
      startY = event.screenY - y;
      $document.on('mousemove', mousemove);
      $document.on('mouseup', mouseup);
    });

    function mousemove(event) {
      y = event.screenY - startY;
      x = event.screenX - startX;
      element.css({
        top: y + 'px',
        left:  x + 'px'
      });
    }

    function mouseup() {
      $document.off('mousemove', mousemove);
      $document.off('mouseup', mouseup);
    }
  };
  });

0 个答案:

没有答案