Javascript / Jquery:代码没有重复我试过的任何循环

时间:2016-11-03 10:58:10

标签: javascript jquery loops

我有无法在以下代码中循环自动滚动功能吗?

$(window).load(function(){
    autoScroll();
});

function autoScroll(){
    $("html, body").animate({ scrollTop: $(document).height() }, 22500,'linear');

    $(window).scroll(function() {   
        if($(window).scrollTop() + $(window).height() == $(document).height()) {
            $(window).scrollTop(0);
        }
    });
}

我已经在本网站上尝试了几个其他类似问题的答案但没有成功。

修改

简单地说,我有两个html页面,index.html和iframe.html。 Index.html有一个指向iframe.html的iframe。上面的代码在iframe.html上运行。上面的代码向下滚动iframe中包含的网页。我想要它做的是在完成滚动到底部之后回到页面顶部,然后重复“X”次。

我已经尝试过以下内容:

$(window).load(function(){
  var i = 0;
  do
    autoScroll();
    i++
  while(i<10);

});

function autoScroll(){
    $("html, body").animate({ scrollTop: $(document).height() }, 22500,'linear');

    $(window).scroll(function() {   
        if($(window).scrollTop() + $(window).height() == $(document).height()) {
            $(window).scrollTop(0);
        }
    });
}

$(window).load(function(){
  var i = 0;
  while(i<10){
    autoScroll();
    i++
  };

});

function autoScroll(){
    $("html, body").animate({ scrollTop: $(document).height() }, 22500,'linear');

    $(window).scroll(function() {   
        if($(window).scrollTop() + $(window).height() == $(document).height()) {
            $(window).scrollTop(0);
        }
    });
}

$(window).load(function(){
  for(i<10; i<10; i++){
    autoScroll();
  };

});

function autoScroll(){
    $("html, body").animate({ scrollTop: $(document).height() }, 22500,'linear');

    $(window).scroll(function() {   
        if($(window).scrollTop() + $(window).height() == $(document).height()) {
            $(window).scrollTop(0);
        }
    });
}

$(window).load(function(){
  setInterval(function(){
    autoScroll();
  }, 3000)

});

function autoScroll(){
    $("html, body").animate({ scrollTop: $(document).height() }, 22500,'linear');

    $(window).scroll(function() {   
        if($(window).scrollTop() + $(window).height() == $(document).height()) {
            $(window).scrollTop(0);
        }
    });
}

我还尝试了上面显示的所有,但是围绕autoScroll函数的内容,如下所示:

$(window).load(function(){
    autoScroll();
});

function autoScroll()
    var i = 0;
    do
        $("html, body").animate({ scrollTop: $(document).height() }, 22500,'linear');

        $(window).scroll(function() {   
           if($(window).scrollTop() + $(window).height() == $(document).height()) {
               $(window).scrollTop(0);
           }
        });
    i++
    while(i<10);
}

1 个答案:

答案 0 :(得分:0)

使用递归函数:通过调用autoScroll();动画完成后:

autoScroll();
function autoScroll(){
    $("html, body").animate({ scrollTop: $(document).height() }, 22500,'linear',function(){
     $(window).scrollTop(0);
             autoScroll();
    });
}

演示:https://jsfiddle.net/bbdsj2bg/1/