这是我的代码:
tripper = 2;
$("#topheader").mousewheel(function(event, delta) {
if (tripper == 2){
startPlace = $("#content").scrollLeft();
startCounter = something;
tripper = 1;
} else {
currentPlace = $("#content").scrollLeft();
if(startCounter < 100){ // milliseconds
distanceMoved = currentPlace - startPlace;
if(distanceMoved > 100){
slideRight();
} else if(distanceMoved < -100){
slideLeft();
}
} else {
tripper = 2;
}
}
}
第一次通过此功能检查100毫秒是否已经过去的正确方法是什么?在第5行代码中,我有变量“something”,需要用某种计数器替换。或许我会以完全错误的方式解决这个问题。建议?
答案 0 :(得分:5)
您可以像这样实例化“Date”对象:
var then = new Date();
稍后你可以再做一个:
var now = new Date();
减法给出了以毫秒为单位的差异:
var elapsed = now - then;
(当两个日期值出现在减法运算符的两侧时,从“Date”到“Number”的强制是隐式的。转换就像调用“now.getTime()”一样。)
答案 1 :(得分:3)
以下代码未经测试但基本上在100毫秒后,它应该将timeout
重置为null并最终将tripper
设置回2;
tripper = 2;
timeout = null;
$("#topheader").mousewheel(function(event, delta) {
if (tripper == 2){
startPlace = $("#content").scrollLeft();
if (!timeout) {
setTimeout(function() {
timeout = null
}, 100);
}
tripper = 1;
} else {
currentPlace = $("#content").scrollLeft();
if(timeout){ // milliseconds
distanceMoved = currentPlace - startPlace;
if(distanceMoved > 100){
slideRight();
} else if(distanceMoved < -100){
slideLeft();
}
} else {
tripper = 2;
}
}
}