我想运行“window.googletag.pubads()。refresh();” 一次,当用户滚动> 2000像素。我该怎么做呢?举个例子:
$(window).scroll(function() {
var st = $(this).scrollTop();
var lastScrollTop = 2000;
if (st > lastScrollTop) {
window.googletag.pubads().refresh();
console.log('refresh');
}
});
答案 0 :(得分:2)
我不认为添加名为boolean
的{{1}}数据类型非常全面,尤其是当OP似乎不了解bool的需要时。它没有告诉他他需要做什么才能完成。上面的答案是正确的,但对将来搜索这个问题的人来说可能并不全面,他们可能不明白你的“旗帜”是什么意思。
不知道何时使用flag
数据类型是这里应该解释的更大问题的症状,因此OP不会继续无知。
您需要的是boolean variable。基本上,你想检查某些事情是否真实。我们已经滚动到这个位置了吗?不,所以让我们触发吧。我们已经这样做了吗?然后它将不会再次滚动,直到刷新页面。
让我们创建一个bool:boolean
。这必须放在滚动逻辑的外部,否则它将每次都重置,并且不起作用。
您希望最初将其设置为false,因此即将推出的附加逻辑将正确启动。
然后,在您的if语句var scrolledToPosition = false;
中,您需要添加if (st > lastScrollTop)
。
感叹号的意思是“不是”。例如,如果&& !scrolledToPosition
等于false,则可以使用bool scrolledToPosition
进行检查。您可以排除感叹号以检查是否为真。例如,!booleanValue
。
这是完整的代码:
if (scrolledToPosition)
如果您需要重置,请将var scrolledToPosition = false;
var lastScrollTop = 2000;
$(window).scroll(function() {
var st = $(this).scrollTop();
if (st > lastScrollTop && !scrolledToPosition) {
window.googletag.pubads().refresh();
console.log('refresh');
scrolledToPosition = true;
}
});
设置为scrolledToPosition
。像这样:
false
答案 1 :(得分:1)
每次滚动时都可以保留全局标志并检查该值。你可以查看我的版本:
var flag = false;
var lastScrollTop = 2000;
$(window).scroll(function() {
var st = $(this).scrollTop();
if (st > lastScrollTop && !flag) {
window.googletag.pubads().refresh();
console.log('refresh');
flag = true;
}
});