2

touchend对在事件期间测量一个元素是否超过另一个元素(视觉上)的最佳方法感到困惑。本质上,我正在实现触摸友好的拖放。

.elementFromPoint()我在and上看过一点event.touches,但不确定如何使用这些来测量特定元素的边界。像下面这样的东西。

.bind('touchend', function(e){

    e.preventDefault();

    /* IF (targ is within titles bounds) { append targ to titles} */
    if (titles == document.elementFromPoint(orig.touches[0].pageX,orig.touches[0].pageY)){

        titles.append(targ);
    }

    targ.removeClass('moving').removeAttr('style');
});
4

1 回答 1

0

这对我来说似乎无缝工作,不断在拖动的元素上切换 zindex 以便您可以获得下面的元素。

element.addEventListener('touchmove', touchMove, false);

function touchMove(event) {
    var x = event.targetTouches[0].clientX;
    var y = event.targetTouches[0].clientY;
    dragger.style.zIndex = -1;
    var hoveredElement = document.elementFromPoint(x, y);
    console.log(hoveredElement);
    dragger.style.zIndex = options.draggerZIndex;

}

如果您可以忽略旧浏览器这个答案javascript - elementFromPoint 选择底部元素 也可以添加指针事件:无

于 2017-10-03T15:27:34.790 回答