![](/img/trans.png)
[英]How do I make it such that the user gets xp only once per minute, instead of once per message?
[英]How do I make a JS function only run once per spam of calls
我一直在尝试在jQuery中创建一个函数,以使div在向下滚动时比页面的其余部分更快地向上移动,并在相反的方向上使它执行相同的操作。
这工作 ,但1.5秒的冷却时间,以避免垃圾邮件$(window).scroll(function()
所以人们不得不等待1.5秒当他们加入该网站为它工作,然后他们必须等待1.5秒每次上下滚动以查看效果是否完美。
我将如何解决此延迟 ? 良好的用户体验应该没有延迟。 (转换函数来自库,在这里没有问题。)
var $intervalReady = false;
setInterval(function(){if($intervalReady==false){
$intervalReady = true;
}}, 1500);
$( document ).ready(function() {
var $elementBeginPos = $('#headertext').position();
$(window).scroll(function(){
var top = $(this).scrollTop();
if(top > 60 && $intervalReady==true){
$('#headertext').transition({y:'30%'});
$intervalReady = false;
}
else if(top < 60 && $intervalReady==true){
$('#headertext').transition({y:'-30%'});
$intervalReady = false;
}
});
});
这是一个工作示例: https: //jsfiddle.net/37khp0ft/根据您的需要进行调整。
通常,更新计时器事件而不是滚动事件的状态。
JS部分:
function updatePos(selector, multiplier)
{
var scrollPos = $(document).scrollTop();
$(selector).css({top: scrollPos * multiplier});
}
$(document).ready(function()
{
setInterval(updatePos, 100,'#div', -1.1 );
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.