Предотвращение двойного касания по условию if

0

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

Проблема в том, что если пользователь несколько раз ударяет, прежде чем панель завершит анимацию, она применит удвоенное действие, перемещающее панель слишком далеко слева необратимо.

Я новичок в JS и не могу понять, как это решить. Я думал, что это можно сделать с помощью оператора var и if, но он, похоже, не работает.

Я настроил var

  pstatus = 1;

Затем я завернул каждое событие в оператор if, но он не работает. Я оставил его без утверждений if, чтобы он работал для проверки.

Любая помощь приветствуется!

http://codepen.io/bsley/pen/kjBcz

На вашем iPhone (Safari) http://codepen.io/bsley/debug/kjBcz

Теги:
iphone

3 ответа

0

Вы можете создать блокировку javascript:

var lock = false;
$("#MyElement").on("namespace.click", function(){
    if(!lock){
        lock = true;
        //Move Element
        lock = false;
    }
});

Тем не менее, я бы предложил посмотреть в Underscore.js и использовать метод throttle(): http://underscorejs.org/

Вы можете имитировать это, заменив:

lock = false;

С:

customThrottle();


var timerDuration = //Duration to wait in milliseconds;
function customThrottle(){
    setTimeout(function(){
            lock = false;
        },
        timerDuration
    );
}
  • 0
    Спасибо чувак! По сути, это то, что я пытался сделать с помощью pstatus. Я реализовал его, но, видимо, он недостаточно быстро блокируется. codepen.io/bsley/pen/JpDcy Есть идеи, как обойти это?
  • 0
    Я нашел временное решение, просто сделав «marginLeft» равным 0, а не добавочным значением. Это не здорово, но пока работает.
Показать ещё 1 комментарий
0

я бы попытался сделать это вот так:

1) при щелчке, происходит слайд.

2) при раздвижении щелчок становится отключенным.

3) при завершении сползания щелчок становится снова включенным.

  • 0
    Правильно! Это то, что я пытался сделать с pstatus, но мой синтаксис должен быть выключен. codepen.io/bsley/pen/xdEvH
0

Я не знаю, как это можно решить из Javascript, но из Objective C, что вы сделали бы, нужно отключить кнопку = YES в методе действий, а затем отключить = NO после завершения анимации.

Я предполагаю, что решение будет похоже на Javascript.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню