javascript touchend, если элемент находится над другим

Запутался в лучшем методе измерения, находится ли элемент над другим элементом (визуально) во время события touchend. По сути, я реализую сенсорное перетаскивание.

Я немного видел .elementFromPoint() и 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');
});

person technopeasant    schedule 02.04.2013    source источник


Ответы (1)


Кажется, у меня это работает без проблем, постоянно переключайте 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 выберите нижний элемент тоже работает, просто добавьте события указателя: нет

person ericjam    schedule 03.10.2017