【问题标题】:Ionic scroll after page has loaded页面加载后的离子滚动
【发布时间】:2017-05-12 13:11:18
【问题描述】:

我正在使用 Ionic2,并且需要在页面加载时将列表滚动到特定位置。

我执行以下操作:

  public ionViewDidEnter(): void {
    if (this.content) {
      this.content.scrollTo(0, this.lastScrollPos, 0);
    }
  }

问题

这可行,但我的问题是即使滚动时间为 0,用户仍然可以看到滚动动画。

问题

有没有办法进行滚动,但对用户来说并不明显?我曾尝试在ionViewWillEnter 中滚动,但它不会滚动,因为我认为这还为时过早,而且列表还不存在。

谢谢

【问题讨论】:

  • this.content._scroll.setTop(this.lastScrollPos);
  • 嗨 Misha130,感谢您的评论。这有效,但与我当前的解决方案相同。用户仍然可以看到滚动动画。
  • 好吧 @ContentChild(Content) public set content(c:Content) { if(c) this.c.scrollTo(0, this.lastScrollPos, 0);基本上第二个 ContentChild 被定义移动滚动。这是最早的。我认为这也是 Web 视图动画滚动过程的正常行为,而不仅仅是将其粘贴在一个地方。您也可以隐藏内容,直到您将其向后滚动。
  • 谢谢,如何隐藏内容,然后再显示?
  • 根据docs,您可以添加scrollDownOnLoad="true" 属性:如果为true,则内容将在加载时向下滚动。。你已经试过了吗?

标签: javascript angular ionic-framework ionic2


【解决方案1】:

你可以在你的构造函数中实现:

constructor(viewCtrl: ViewController) {
this._viewCtrlWriteSub = viewCtrl.writeReady.subscribe(() => {
    this._viewCtrlWriteSub.unsubscribe();
    this.content.scrollTo(0, this.lastScrollPos, 0);
});

}

就是这样

【讨论】:

    猜你喜欢
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    相关资源
    最近更新 更多