gpt4 book ai didi

javascript - 按后退按钮后转到其他页面时滚动位置不会重置

转载 作者:行者123 更新时间:2023-12-02 08:12:20 24 4
gpt4 key购买 nike

我在 angularjs 应用程序中滚动时遇到问题。

目前它有 2 页:第一页是客户列表,您可以选择其中一个并查看其详细信息。第二个是公司列表,其工作原理相同。

我使用面板通过 $location.path() 在它们之间导航。该应用程序还有一个后退按钮,使用 $window.history.back()

当您选择客户或公司列表中的其中一项时,当您按下返回按钮时,您将返回到上一页(客户或公司列表)并恢复滚动位置。我正在使用标准 $window.history.back() 功能,未实现任何自定义功能。

但这就是问题发生的地方:如果不向任何方向滚动只是转到另一个页面(到其他项目列表)滚动位置不会重置。但如果你滚动它,哪怕只是一点点,它的位置就会重置。另外,如果您不使用后退按钮,一切都会正常工作。

所以,问题是:使用$window.history.back()后转到另一个页面时如何重置滚动位置?

如果重要的话,我还使用infinite-scroll插件。但即使我将其关闭,也没有任何变化,所以我猜问题不在于插件。

最佳答案

我不久前遇到了类似的问题,并提出了简单(但不是优雅的解决方案)。

当 View 更改时,我已将包装器滚动顶部值存储在范围中。返回时,我在包装器上再次应用该值。

实际上我不记得单击后退浏览器按钮时它的行为如何。您需要检查一下。

<小时/>

更改 View 并存储scrollTop值 https://github.com/jedrzejchalubek/Reed/blob/master/src/app/controller/all.js#L20

angular.extend($scope.view, {
panel: false,
section: 'single',
single: el,
scrollPosition: $('#thumbs').scrollTop()
});

返回并重新应用scrollTop值 https://github.com/jedrzejchalubek/Reed/blob/master/src/app/directives/back-to-list.js#L14

scope.$apply(function() {
scope.view.section = 'list';
scope.view.panel = false;
});
$('#thumbs').scrollTop( scope.view.scrollPosition );

项目在github上,大家可以扫一扫。也许这有帮助。 https://github.com/jedrzejchalubek/Reed

关于javascript - 按后退按钮后转到其他页面时滚动位置不会重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33214430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com