angular.js指令集实现模态框拖动效果

来源:互联网 发布:mysql 查询一年总数 编辑:程序博客网 时间:2024/06/05 09:09

define(['application-configuration'], function (app) {

   "use strict";
    app.directive('draggable', ['$document', function($document) {//模态框拖动指令

                return function(scope, element, attr) {
                var startX = 0, startY = 0, x = 0, y = 0;
                element= angular.element(document.getElementsByClassName("am-modal-dialog")); 
                element.css({
                    position: 'relative',
                    cursor: 'move'
                });


                element.on('mousedown', function(event) {
                    // Prevent default dragging of selected content
                    event.preventDefault();
                    startX = event.clientX - x;
                    startY = event.clientY - y;
                    $document.on('mousemove', mousemove);
                    $document.on('mouseup', mouseup);
                });


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


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

    }])

 return app;

});


<div class="am-modal-dialog" draggable>

亲测真实有效有点小问题,后期再修改。