【问题标题】:Angular router click scroll角路由器点击滚动
【发布时间】:2020-07-29 12:29:00
【问题描述】:

在我的 Angular 项目中,我单击存储了一些信息,然后使用 router.navigate 函数移动到新页面。喜欢

  localStorage.setItem('data', stringify(data));
  localStorage.setItem('search', stringify(this.search));
  this.router.navigate(['/somewhere/someplace/search']);

这很好用,但是当您滚动到页面底部时,当您转到新页面时,新页面会停留在页面底部。有没有办法将其移动/滚动到页面顶部,以便用户不必向上滚动即可查看内容?

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    您可以使用$window.scrollTo(x, y); 将页面的滚动设置为与您的页面对应的 x 和 y 值。

    在页面的左上角(页面的开头)给这两个表示 0 所以在你的情况下我会做$window.scrollTo(0, 0);

    如果您希望它专注于一个元素而不是仅仅滚动到顶部,请执行以下$window.scrollTo(0, angular.element('myelement').offsetTop);

    你的情况是这样的

     localStorage.setItem('data', stringify(data));
      localStorage.setItem('search', stringify(this.search));
      this.router.navigate(['/somewhere/someplace/search']);
      $window.scrollTo(0, 0);
    

    【讨论】:

    • 路由到页面后我会这样做吗?我尝试了与“窗口”类似的东西,但我无法让它在角度范围内工作
    • 它不会让我添加 $window,它会让我将其更改为 Window。然后它抛出此错误消息“属性'scrollTo'在类型'{new():Window;原型:Window;}'上不存在。”
    • 你必须像这样angular.module('myApp', []) .config(function ($windowProvider) { var $window = $windowProvider.$get(); console.log($window); })
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 2021-03-20
    • 1970-01-01
    • 2019-02-04
    相关资源
    最近更新 更多