make bootstrap twitter dialog modal draggable

后端 未结 9 2200
野性不改
野性不改 2021-01-30 08:43

I\'m trying to make bootstrap twitter dialog modal draggable with this jquery plugin:

http://threedubmedia.com/code/event/drag#demos

but it doesn\'t work.

<
9条回答
  •  别那么骄傲
    2021-01-30 09:00

    For the mouse cursor (with jQuery UI) :

    $('#my-modal').draggable({
        handle: ".modal-header"
    });
    

    For the touch cursor (with jQuery):

    var box = null;
    var touchobj = null;
    var position = {'x':0, 'y':0};
    var positionbox = {'x':0, 'y':0};
    
    // init touch
    $('.modal-header').on('touchstart', function(e){
        box = $(this).closest('.modal-dialog');
        touchobj = e.changedTouches[0];
    
        // take position touch cursor
        position['x'] = touchobj.pageX;
        position['y'] = touchobj.pageY;
    
        //take original position box to move with touch
        positionbox['x'] = parseInt(box.css('left'));
        positionbox['y'] = parseInt(box.css('top'));
    
        e.preventDefault();
    });
    
    // on move touch
    $('.modal-header').on('touchmove', function(e){
        var dist = {'x':0, 'y':0};
        touchobj = e.changedTouches[0];
    
        // we calculate the distance of move
        dist['x'] = parseInt(touchobj.clientX) - position['x'];
        dist['y'] = parseInt(touchobj.clientY) - position['y'];
    
        // we apply the movement distance on the box
        box.css('left', positionbox['x']+dist['x'] +"px");
        box.css('top', positionbox['y']+dist['y'] +"px");
    
        e.preventDefault();
    });
    

    The addition of the 2 solutions is compatible

提交回复
热议问题