实现滚动条离顶端一定距离之后异步加载广告

2017-08-24 09:46:23 +08:00
 tianxiacangshen
谷歌广告推荐异步加载,于是我写了段代码,检测滚动条的位置,一旦大于 1000px,就异步加载广告代码

var height=$(window).scrollTop();
if(height > 1000){
$('#div').load(url);
}

但是不行,这个会被执行很多次,怎么才能执行一次?
4482 次点击
所在节点    jQuery
7 条回复
hzw758
2017-08-24 09:49:52 +08:00
设置个 flag,默认值为 true,执行代码前先判断 flag,执行过之后把 flag 设为 false
jy02534655
2017-08-24 09:54:54 +08:00
或者执行之后停止监听滚动条滚动事件
SourceMan
2017-08-24 09:55:50 +08:00
.on .off
tianxiacangshen
2017-08-24 10:08:56 +08:00
@jy02534655 有多处要监听,所以也不能第一次检测到就停止监听
tianxiacangshen
2017-08-24 10:51:42 +08:00
@jy02534655
@hzw758

这样可以

var load1=true;
var load2=true;
$(window).scroll(function(){
var height=$(window).scrollTop();
if(height > 600 && load1){
load1=false;
$('#load-1').load(Url+'/ad/1');
}
if(height > 1000 && load2){
load2=false;
$('#load-2').load(Url+'/ad/2');
}
});
weer0026
2017-08-24 11:33:08 +08:00
再加个 throttle 更好吧。
SakuraKuma
2017-08-24 11:37:27 +08:00
在需要加载的容器 one 一个自定义事件,到达的时候 triggerHandler。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/385357

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX