Клуб API Карт

Как посчитать скорость прокрутки?

Madgeniy
10 июня 2016, 20:07

Всем привет.
У меня возникла задача отключать при определенной скорости прокрутки поведение "drag", для этого использовал примерно такой код:

prev = 0;
myMap.events.add('mousemove', function (e) {
    if (prev == 0){
        prev = e.get('domEvent').get('pageY');
    } else {
        if (Math.abs(e.get('domEvent').get('pageY') - prev) > 20){
            myMap.behaviors.disable(['drag']);
        } else {
            myMap.behaviors.enable(['drag']);
        }
        prev = e.get('domEvent').get('pageY');
    }
});

Однако, событие mousemove не обновляется, т.е. при срабатывании его, не проверяется, запрещено ли поведение drag или нет - если событие началось с запрещенным драгом, то его и не будет, даже если он уже разрешен.
Как это можно обойти?
1 комментарий
Подписаться на комментарии к посту
Лучше наверное написать свой behavior чем вот эти костыли.
Я писал когда-то для 2.0 когда еще не появился util.Dragger.
Можно попробовать включать в своем behavior стандартный Drag