move.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. $axure.internal(function($ax) {
  2. var _move = {};
  3. $ax.move = _move;
  4. var widgetMoveInfo = {};
  5. $ax.move.GetWidgetMoveInfo = function() {
  6. return $.extend({}, widgetMoveInfo);
  7. };
  8. $ax.move.MoveWidget = function(id, x, y, easing, duration, to, animationCompleteCallback, shouldFire) {
  9. $ax.drag.LogMovedWidgetForDrag(id);
  10. var widget = $('#' + id);
  11. var jobj = $jobj(id);
  12. var horzProp = 'left';
  13. var vertProp = 'top';
  14. var horzX = to ? x - Number(jobj.css('left').replace('px', '')) : x;
  15. var vertY = to ? y - Number(jobj.css('top').replace('px', '')) : y;
  16. var fixedInfo = $ax.dynamicPanelManager.getFixedInfo(id);
  17. if(fixedInfo.horizontal == 'right') {
  18. horzProp = 'right';
  19. horzX = to ? $(window).width() - x - Number(jobj.css('right').replace('px', '')) - widget.width() : -x;
  20. } else if(fixedInfo.horizontal == 'center') {
  21. horzProp = 'margin-left';
  22. if(to) horzX = x - $(window).width() / 2;
  23. }
  24. if(fixedInfo.vertical == 'bottom') {
  25. vertProp = 'bottom';
  26. vertY = to ? $(window).height() - y - Number(jobj.css('bottom').replace('px', '')) - widget.height() : -y;
  27. } else if(fixedInfo.vertical == 'middle') {
  28. vertProp = 'margin-top';
  29. if(to) vertY = y - $(window).height() / 2;
  30. }
  31. var cssStyles = {};
  32. if(!$ax.dynamicPanelManager.isPercentWidthPanel($obj(id))) cssStyles[horzProp] = '+=' + horzX;
  33. cssStyles[vertProp] = '+=' + vertY;
  34. var query = $jobj(id).add($jobj(id + '_ann')).add($jobj(id + '_ref'));
  35. if(easing == 'none') {
  36. query.animate(cssStyles, 0);
  37. if(animationCompleteCallback) animationCompleteCallback();
  38. if(shouldFire) $ax.action.fireAnimationFromQueue(id);
  39. } else {
  40. query.animate(cssStyles, duration, easing, function() {
  41. if(animationCompleteCallback) animationCompleteCallback();
  42. if(shouldFire) $ax.action.fireAnimationFromQueue(id);
  43. });
  44. }
  45. var moveInfo = new Object();
  46. moveInfo.x = horzX;
  47. moveInfo.y = vertY;
  48. moveInfo.options = {};
  49. moveInfo.options.easing = easing;
  50. moveInfo.options.duration = duration;
  51. widgetMoveInfo[id] = moveInfo;
  52. $ax.event.raiseSyntheticEvent(id, "onMove");
  53. };
  54. _move.nopMove = function(id) {
  55. var moveInfo = new Object();
  56. moveInfo.x = 0;
  57. moveInfo.y = 0;
  58. moveInfo.options = {};
  59. moveInfo.options.easing = 'none';
  60. moveInfo.options.duration = 0;
  61. widgetMoveInfo[id] = moveInfo;
  62. };
  63. });