2017-07-14 81 views
1

我正在使用this library在我的應用程序的某些點滾動頁面。一切工作都很順利,直到我添加了與頁面滾動同時發生的這一行。Angular CLI;焦點也滾動到輸入

this.myInput.first.nativeElement.focus() 

這導致focus()競爭頁面滾動。由於我給頁面滾動調用pageScrollDurationfocus()顯然滾動的持續時間爲0,頁面跳轉到input,而不是平滑滾動那裏。

如何確保頁面滾動能夠平滑地滾動到元素,同時仍然關注它?

回答

2

我能找到解決的辦法是包裹

this.myInput.first.nativeElement.focus()

下列要求:

setTimeout(() => { 
    this.myInput.first.nativeElement.focus() 
}, 0) 

這將導致頁面滾動順利發生。

+0

難道你不能使用庫提供的'pageScrollFinish'事件來觸發焦點嗎? –

+0

我研究過這個問題,它的問題是被聚焦的元素與負責滾動的組件不在同一個組件中。 – rmlarsen