【问题标题】:jQuery draggable, offset to the leftjQuery可拖动,向左偏移
【发布时间】:2013-01-22 17:31:46
【问题描述】:

有谁知道,我有一个可拖动的项目,它应该捕捉到可放置的项目。我有这个工作,但我似乎无法弄清楚的是,我希望可拖动对象一旦放到可放置对象上,就可以对齐自身,使其刚好离开左侧。就像下图一样。

有谁知道用 jQuerys 可拖动/可拖放对象来做到这一点的方法吗?

更新

这是我在放置对象时的功能。

function handleCardDrop( event, ui ) {
  var slotNumber = $(this).data( 'number' );
  var cardNumber = ui.draggable.data( 'number' );

  // If the card was dropped to the correct slot,
  // change the card colour, position it directly
  // on top of the slot, and prevent it being dragged
  // again
  //alert("Slot number: "+slotNumber+"\n Card Number: "+cardNumber);

  //alert(cardNumber+":"+slotNumber);
  if(cardNumber==slotNumber)
  {
      correctCards++;
  }

    ui.draggable.addClass( 'correct' );
    ui.draggable.draggable( 'disable' );

    ui.draggable.addClass( 'correct' );
    ui.draggable.draggable( 'disable' );
    $(this).droppable( 'disable' );

    ui.draggable.css({'cursor':'default'});
    ui.draggable.position( { of: $(this), my: 'left top', at: 'left top' } );
    ui.draggable.draggable( 'option', 'revert', false );
}

【问题讨论】:

  • 你拍得怎么样?听起来您的答案在于样式。
  • 我已经更新了我的答案以包含在删除它时触发的事件/函数。

标签: jquery draggable droppable


【解决方案1】:

我想出了一个方法来实现这一点。当我真正需要的是 offset() 函数时,我正在使用 position() 函数。这是我用于定位的代码的 sn-p。可拖动对象的高度稍小,因此对于顶部,我计算大小的不同,然后将其除以 2 以使其在对象内居中。然后我将其设置为可拖放对象的一半。

    var off = $( this ).offset();
    off.top += (($( this ).height() - ui.draggable.height())/2);
    off.left -= ui.draggable.width()/2;

    ui.draggable.offset( off );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多