Guides when moving jquery-ui-draggable boxes

前端 未结 4 816
不知归路
不知归路 2020-12-12 19:57

I am working on how to show guides when moving boxes like it is in Google Docs Drawing. I would prefer an open-source code or any type of guide before starting writing my ow

4条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-12 20:28

    for those who still trying to find a way of doing this, i create a fiddle

    i used snap and $(this).data('draggable').snapElements;

    drag: function(event, ui) 
            { 
                //var snapped = $(this).data('ui-draggable').snapElements; //## for new version of jquery UI
                var snapped = $(this).data('draggable').snapElements;
                /* Pull out only the snap targets that are "snapping": */
                var snappedTo = $.map(snapped, function(element) {
                    //return element.snapping ? element.item : null;
                    return element.snapping ? element : null;
                });
                if((snappedTo[0].left + snappedTo[0].width) == $(this).offset().left)
                {
                    console.log('right of snapped item');
                    $('#guide-v').css({'left': $(this).offset().left}).show();
                }else
                if((snappedTo[0].left)  == $(this).offset().left)
                {
                    console.log('left  of snapped item');
                    $('#guide-v').css({'left': $(this).offset().left}).show();
                }else $('#guide-v').hide();
    
                if((snappedTo[0].top)  == $(this).offset().top)
                {
                    console.log('top  of snapped item');
                    $('#guide-h').css({'top': $(this).offset().top}).show();
                }else
                if((snappedTo[0].top + snappedTo[0].height)  == $(this).offset().top)
                {
                    console.log('bottom  of snapped item');
                    $('#guide-h').css({'top': $(this).offset().top}).show();
                }else $('#guide-h').hide();
              }
          });
    

    http://jsfiddle.net/j6zqN/1/

提交回复
热议问题