平滑滚动,等待所有页面元素加载完毕

时间:2021-02-06 19:00:35

标签: jquery

我想在 jquery 中使用平滑滚动。现在我遇到了麻烦,因为在页面内部我使用的是 jquery carrousel,其中本机 html 内容更高,直到所有内容都加载完毕并且 carrousel 由其 jquery 脚本水平运行。

这个旋转木马下的每个锚点都控制不正确。平滑滚动脚本滚动到页面末尾,因为由于轮播的原生 html 结构,先前计算的高度可能更高。当我为该部分设置内联 max-height: and min-height: 时,它会正确滚动。我想保持高度动态。

我尝试使用 load.function 进行回退,但没有奏效。

那是我的原生脚本:

if (window.location.hash) {
    var hash = window.location.hash;
  
    setTimeout(function() {

    window.scrollTo(0, 0);
  }, 1);
    $('html, body').animate({
            scrollTop: $(hash).offset().top
        }, 900, 'swing');
}

除此之外,我已经尝试过

if (window.location.hash) {
    var hash = window.location.hash;
  
    setTimeout(function() {

    window.scrollTo(0, 0);
  }, 1);
$(window).load(function(){
    $('html, body').animate({
            scrollTop: $(hash).offset().top
        }, 900, 'swing');
    });
}

当我在这里写作时,我想到了解决方案。第一次测试进展顺利。我愿意接受其他解决方案。

if (window.location.hash) {
    var hash = window.location.hash;
  
    setTimeout(function() {

    window.scrollTo(0, 0);
  }, 1);
    setTimeout(function(){ 
    $('html, body').animate({
            scrollTop: $(hash).offset().top
        }, 900, 'swing');
        }, 200);
}

0 个答案:

没有答案