V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tianxiacangshen
V2EX  ›  jQuery

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

  •  
  •   tianxiacangshen · 2017-08-24 09:46:23 +08:00 · 4457 次点击
    这是一个创建于 2408 天前的主题,其中的信息可能已经有所发展或是发生改变。
    谷歌广告推荐异步加载,于是我写了段代码,检测滚动条的位置,一旦大于 1000px,就异步加载广告代码

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

    但是不行,这个会被执行很多次,怎么才能执行一次?
    7 条回复    2017-08-24 11:37:27 +08:00
    hzw758
        1
    hzw758  
       2017-08-24 09:49:52 +08:00
    设置个 flag,默认值为 true,执行代码前先判断 flag,执行过之后把 flag 设为 false
    jy02534655
        2
    jy02534655  
       2017-08-24 09:54:54 +08:00
    或者执行之后停止监听滚动条滚动事件
    SourceMan
        3
    SourceMan  
       2017-08-24 09:55:50 +08:00
    .on .off
    tianxiacangshen
        4
    tianxiacangshen  
    OP
       2017-08-24 10:08:56 +08:00
    @jy02534655 有多处要监听,所以也不能第一次检测到就停止监听
    tianxiacangshen
        5
    tianxiacangshen  
    OP
       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
        6
    weer0026  
       2017-08-24 11:33:08 +08:00
    再加个 throttle 更好吧。
    SakuraKuma
        7
    SakuraKuma  
       2017-08-24 11:37:27 +08:00
    在需要加载的容器 one 一个自定义事件,到达的时候 triggerHandler。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   998 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 20:00 · PVG 04:00 · LAX 13:00 · JFK 16:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.