Браузер не учитывает новые настройки CSS, пока действие перетаскивания не закончено - PullRequest
0 голосов
/ 29 января 2019

У меня проблема с ng2-dragula.Я пытаюсь использовать его на мобильном устройстве, поэтому мне нужно остановить прокрутку, когда элемент перетаскивается.На ng2-dragula пользователи GitHub предлагают использовать touch-action: none для элемента со свитком.

Я пытаюсь добавить это свойство в свой элемент body, поэтому я использую:

        this.dragula$.add(this.dragulaService.drag('GOALS')
            .subscribe(({name, el, source}) => {
                this.document.body.style.touchAction = 'none';
            })
        );

КогдаЯ пытаюсь перетащить элемент, который вижу в Chrome Inspector, что добавляется touch-action: none, но это не меняет реакцию браузера, пока я не удаляю элемент.Когда я пытаюсь снова его перетащить, все работает хорошо, и body больше не прокручивает.Но я также хочу использовать:

        this.dragula$.add(this.dragulaService.dragend('GOALS')
            .subscribe(({name, el}) => {
                this.document.body.style.touchAction = 'auto';
            })
        );

для восстановления предыдущих настроек после удаления элемента.

Это какие-либо настройки браузера, которые запрещают новые настройки до конца фактической операции перетаскивания?

1 Ответ

0 голосов
/ 20 мая 2019

Я очень глубоко исследую эту проблему, и похоже, что обнаружение класса изменений в ng2-dragula запускается только при событии запуска, и если вы изменяете какой-либо класс во время процесса перетаскивания, это изменение не влияет на ваше действительное действие.

Наконец, мы не можем использовать изменение класса для управления процессом перетаскивания.Возможно, это может измениться в будущем обновлении Dragula.

...