【问题标题】:Return page to left on refresh刷新时将页面返回到左侧
【发布时间】:2011-05-04 06:25:50
【问题描述】:

我有一个水平滚动网站,我希望在页面刷新时将页面重置到最左侧(原始位置)。截至目前,我已经尝试使用 jQuery .scrollLeft 但只能在页面最初加载时才能使其工作。有没有办法在页面刷新时将其设置为工作或其他方式来完成此操作?

【问题讨论】:

  • 页面刷新会触发页面加载。定义刷新.
  • 我希望页面在按下刷新按钮/F5 时返回到最左侧(起始位置)。现在我有 - $(document).load().scrollLeft(0); - 第一次加载页面时有效。但是,如果您已经在查看页面然后点击刷新按钮/F5,它不会将页面发送回最左侧位置,而是页面刷新并继续显示您已经查看的内容。希望这是有道理的。谢谢。
  • 即使你不使用任何JS,刷新页面也只会向左移动!!不使用JS会向右还是居中?
  • 它将转到刷新前正在查看的位置。例如,假设我向右滚动了 300px,当我刷新当前页面时,页面位置将保持向右滚动 300px。我正在寻找的是将页面位置重置为 0px(最左侧)。
  • 刚刚开始工作,这是我正在使用的,以防其他人遇到此问题:$(document).ready(function() { $('html, body').animate ({ scrollLeft : 0 },800); }); - 感谢您的帮助!

标签: jquery refresh scroll


【解决方案1】:

在 html 中的 body 标记末尾设置以下内容。这应该在刷新或重新加载时将页面重新定位到左上角。

window.onload = function() {
    window.scrollTo(0, 0); // set x and y position to 0 and 0 respectively.
};

【讨论】:

    【解决方案2】:

    如果刷新后(F5/cmd R)页面位置没有重置到左上角,这一定是某种浏览器内存。

    你可以像这样在左上角创建一个主锚:

    <a name="home">&nbsp;</a>
    

    此示例使用不间断空格作为内容,但您可以将其包裹在现有内容周围。

    然后将您的页面称为http://www.example.com/page.html#home,它应该会覆盖浏览器内存。用你自己的url替换,保留#home。

    稍后添加:

    您可以像这样在页面加载时强制移动到锚点:

    $(function() {
      window.location.href = "#anchor";
    });
    

    ​jsbin上的代码:http://jsbin.com/awata3/edit

    $(function) 是 $(document).ready(function) 的缩写

    【讨论】:

    • 我实际上已经有了这个用于导航目的。有没有办法告诉浏览器在刷新时将页面发送回这个锚点,无论页面在哪里?
    • 在我的原始答案中添加了说明,希望对您有所帮助。
    【解决方案3】:

    所以我很清楚你在问什么。您是在谈论一旦页面加载并且用户向右滚动,那么您希望页面在刷新时返回到起始位置,而不是停留在用户刚刚查看的内容上?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-26
      • 2010-11-14
      • 2021-11-27
      • 2014-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-08
      相关资源
      最近更新 更多