我正在为响应式网站构建一个模块,允许用户点击初始屏幕并从右侧显示一个面板。然后他们可以点击关闭按钮并关闭面板。
问题在于,如果用户在面板完成动画制作之前多次点击,则会将面板移动太远而不可逆转的动作加倍。
我是JS的新手,无法弄清楚如何解决这个问题。我认为可以使用var和if语句完成,但它似乎不起作用。
我设置了var
pstatus = 1;
然后我将每个事件包装在if语句中,但它不起作用。我在没有if语句的情况下离开了它,因此可以查看它。
任何帮助将不胜感激!
http://codepen.io/bsley/pen/kjBcz
在iPhone上(Safari)http://codepen.io/bsley/debug/kjBcz
答案 0 :(得分:0)
我不知道如何从Javascript解决这个问题,但是从Objective C你要做的是在action方法中将按钮设置为disabled = YES,然后在动画完成后将其设置为disabled = NO 。
我认为解决方案与Javascript类似。
答案 1 :(得分:0)
我会尝试这样做:
1)点击,幻灯片发生。
2)滑动时,点击变为禁用。
3)完成滑动后,点击将重新启用。
答案 2 :(得分:0)
您可以创建一个javascript“lock”:
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
);
}