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