AngularUI modal to be draggable and resizable

前端 未结 6 551
逝去的感伤
逝去的感伤 2021-02-04 02:19

I have an angularUi modal window wrapped in a directive:

html:



  
    

        
6条回答
  •  無奈伤痛
    2021-02-04 02:54

    I've created a native directive to make the modal draggable. You only need AngularJs and jQuery. The Directive uses the "modal-dialog" class from Ui-Bootstrap modal and you can only move the modal in the header.

    .directive('modalDialog', function(){
      return {
        restrict: 'AC',
        link: function($scope, element) {
            var draggableStr = "draggableModal";
            var header = $(".modal-header", element);
    
            header.on('mousedown', (mouseDownEvent) => {
              var modalDialog = element;
              var offset = header.offset();
    
              modalDialog.addClass(draggableStr).parents().on('mousemove', (mouseMoveEvent) => {
                    $("." + draggableStr, modalDialog.parents()).offset({
                        top: mouseMoveEvent.pageY - (mouseDownEvent.pageY - offset.top),
                        left: mouseMoveEvent.pageX - (mouseDownEvent.pageX - offset.left)
                    });
                }).on('mouseup', () => {
                     modalDialog.removeClass(draggableStr);
                });
            });    
         }
      }  
    });
    

提交回复
热议问题