从底部开始然后向上滚动

Posted

技术标签:

【中文标题】从底部开始然后向上滚动【英文标题】:Start at bottom then scroll up 【发布时间】:2015-02-24 02:31:46 【问题描述】:

我正在尝试使我的网站在页面加载时从下到上进行动画处理。 在本站点赞:http://partnersandspade.com/studio/

问题是我的网站从我网站的一半开始滚动,而不是从底部开始。

我现在拥有的是这样的:

jQuery(window).load(function()
    $('html,body').animate( scrollTop: $(document).height() , 0);
    $('html,body').animate( scrollTop: 0 , 4000);
);

有什么建议吗?

【问题讨论】:

【参考方案1】:

每次用户滚动时,您都要求 jQuery 制作动画。由于这会触发滚动事件:

$('html, body').animate( scrollTop: x );

您将无休止地上下滚动页面。

使用加载的图片:https://github.com/desandro/imagesloaded

// are those images loaded yet?
$('body').imagesLoaded(function() 
  var dh = $(document).height();

  // set the html, body to bottom while you're at opacity 0
  $('html, body').animate( scrollTop: dh , 0);

  // transition to opacity 1
  $('body').addClass('loaded');

  // animate to the top
  $('html, body').animate( scrollTop: 0, 2000);
);

添加加载状态

要添加加载状态,我会这样做。

CSS

 body 
   opacity: 0;
   -webkit-transition: opacity 0.5s;
   -moz-transition: opacity: 0.5s;
   transition: opacity 0.5s;
 
 body.loaded 
   opacity: 1;
 

【讨论】:

这会在我的网站顶部添加一个巨大的空白区域,并且根本没有动画。我添加了html, body position: relative; 您可以将上述函数的内容粘贴到您的控制台中以验证它是否有效 当我输入 (document).ready 而不是 (window).load 时它可以工作,但现在我看到了问题,我在首页上的滑块在它开始之前还没有完成加载向上滚动,所以我想我应该在午餐这个脚本之前加载页面 100%?我该怎么做? 是的,因为您将它粘贴到您的控制台中,在一个已经加载并且所有资产都已计入的页面上,因此文档高度是正确的高度。对于您的项目,如果您使用 doc ready,则文档高度变量会有所不同。您需要等待所有资产加载完毕。 我明白了.. 但是 (window).load 也很奇怪.. 但就像我在帖子中提到的网站一样:partnersandspade.com/studio - 他们在内容准备好之前使用加载器.我想这可能会有所帮助。但是我该如何添加呢?如果还有很多工作,我可以为此提出一个新问题。【参考方案2】:

这可能会有所帮助:

$( document ).ready(function()
        $('html, body').animate( scrollTop: $(document).height() , 0);
        $('html, body').animate( scrollTop: 0 , 1000);    
);

以下是工作示例:http://jsfiddle.net/xvafa479/

【讨论】:

是的,这应该可以。但我对此有疑问,因为它不会从底部滚动。它从那里开始。我发布的原始代码实际上从底部开始,具有相同的值(7000)。我想这与我的网站有关,因为 $(document).height() 也不起作用。 你可以尝试调试。一些提示:1. 提醒 $(document).height() 检查值 2. 降低动画速度$('html, body').animate( scrollTop: 0 , 2000); 返回7454,降低动画速度也无济于事。 尝试添加加载状态。设置 html 后,将 html 的不透明度、body 从 0 转换为 1,将 body 偏移 top 设置为文档的高度。 很抱歉成为这样的菜鸟。但我不知道该怎么做。你能给我举个例子吗?非常感谢您的帮助!【参考方案3】:

您不需要观看滚动事件。您可以简单地删除它并开始加载动画。

jQuery(window).load(function()
      $('html,body').animate( scrollTop: 7000 , 0);
      $('html,body').animate( scrollTop: 0 , 2000);
);

它只会触发一次动画。

已编辑:

您可以将滚动设置到页面末尾。像其他答案一样:

jQuery(window).load(function()
      $('html,body').animate( scrollTop: $(document).height() , 0);
      $('html,body').animate( scrollTop: 0 , 2000);
);

【讨论】:

感谢您的回答。您在此处发布的代码应该可以正常工作,但在我这边,它不是从底部开始,它似乎几乎从窗口高度滚动。【参考方案4】:

这应该工作:http://jsfiddle.net/ck52vb3k/ 您只需要删除动画上的滚动功能

代码:

$(window).ready(function()
    $('html,body').animate( scrollTop: 7000 , 0);  
    $('html,body').animate( scrollTop: 0 , 2000); 
);

【讨论】:

以上是关于从底部开始然后向上滚动的主要内容,如果未能解决你的问题,请参考以下文章

粘性侧边栏:向下滚动时固定在底部,向上滚动时固定在顶部

UITextView 从底部开始

SwiftUI 中的底部优先滚动

在按 Tab 键时,由于固定的底部页脚,页面不会向上滚动

如何使滚动视图增长并向上滚动?

如何在页面滚动时隐藏元素?