簡體   English   中英

interact.js將項目拖到頂部

[英]interact.js dragged item move on top

這是我第一次使用此插件。

我想在拖動時添加一堆元素。 我使用z-index和相對位置。

    onstart: function (event) {

    //get max z-index on page   
      var maxZ = Math.max.apply(null, 
      $.map($('body > *'), function(e,n) {
        if ($(e).css('position') != 'static')
          return parseInt($(e).css('z-index')) || 1;
      }));

        event.target.style.background = 'red';
        event.target.style.zIndex = maxZ + 1; 
        event.target.style.position = 'relative'; 
    },

有更有效的方法嗎?

原始的拖放演示

我編輯的帶有堆棧的拖放演示

如果元素也不能用作拖放區,則您的解決方案效果很好。 當放置區域重疊時,interact.js選擇DOM中最深的元素,因此應在其他放置區域上方顯示,某些CSS屬性會更改繪制順序(例如positiontransformz-index等)。使用z-index重新排序,則放置目標看起來可能不正確。

如果您要定位的元素都是兄弟姐妹並且都具有absolutefixed position (在發生任何拖動操作之前),則將一個元素附加到其父元素應使其在其他元素之前而不使用z-index這樣放下檢查就可以了精細。

onstart: function (event) {
    var target = event.target;

    // Bring element in front of its siblings
    target.parentNode.appendChild(target);

    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM