jQuery перетаскивается с помощью сенсорного удара - мерцающая проблема

Мой перетаскиваемый div становится перетаскиваемым на сенсорных устройствах, но он "мерцает" в странных позициях, когда начинает его перемещать. Работает как очарование для настольных устройств, но не на iPad или Android.

Есть предложения по решению?

Заранее спасибо!

1 ответ

Решение

К сожалению, я не могу поделиться кодом, так как он войдет в продукт, и я не могу воспроизвести проблему в jsfiddle или подобном.

Но я сделал исправление для мерцающего мерцания на сенсорных устройствах, которым я поделюсь здесь, если кто-то еще столкнется с проблемой.


var prevPos = null, diffX, diffY, maxDiff;

$( '#draggable' ).draggable( {
    ...,
    ...,
    drag: function ( event, ui ) {

        if ( prevPos ) {
            diffX = Math.abs( prevPos.left - ui.position.left );
            diffY = Math.abs( prevPos.top - ui.position.top );
            maxDiff = Math.max( diffX, diffY );
            if ( maxDiff > 60 ) {
                ui.position = prevPos;
            }
        }

        prevPos = ui.position;
    },
    stop: function ( event, ui ) {
        prevPos = null;
    } 
} );
Другие вопросы по тегам