現在、TypeScriptで使用しているHTMLページの一番上まで自動的にスクロールしようとしています。
window.scrollTo(0 , 0);
hTMLページの下部まで自動的に下にスクロールしようとしているとき
window.scrollTo( 0 , document.body.scrollHeight);
コード
openPDFVievwer(data) {
this.obj= JSON.parse(data._body);
document.getElementById('spinner').style.display = 'none';
window.scrollTo( 0 , 0);
}
コード
searchData(data) {
this.document = data;
this.searchResultDiv = true; // where component will be rendered
window.scrollTo( 0 , document.body.scrollHeight);
}
しかし、両方とも機能していないようです。
私が間違っていることはありますか?
htmlを試してください
<div #list [scrollTop]="list.scrollHeight"></div>
解決策2
コンポーネントでhtmlにIDを定義しますid="scrollId"
const element = document.querySelector('#scrollId');
element.scrollIntoView();
angular 2 +の回答
それは非常に簡単です、ただ要素を作成するだけです
例えば<span id="moveTop"></span>
または要素にただidを追加するか、既存のIDを使用します move top、down、midなど.
特定のイベントでこのメソッドを追加します。リストリストとして編集するときに一番上に移動したいなどです。
gotoTop() {
var scrollElem= document.querySelector('#moveTop');
scrollElem.scrollIntoView();
}
または、パラメータとしてIDを送信する場合は、単にオプションのパラメータを作成するだけです
gotoTop(elementId?: string) {
if (elementId != null) {
var element = document.querySelector(elementId);
element.scrollIntoView();
}
else {
var element = document.querySelector('#moveTop');
element.scrollIntoView();
}
}
上記の解決策は私のために働いていませんでした、これを試してみてくださいコード:
import { Router, NavigationEnd } from '@angular/router';
constructor(private router: Router)
ngOnInit()
{
this.router.events.subscribe((evt) => {
if (!(evt instanceof NavigationEnd)) {
return;
}
document.getElementsByTagName("app-website-nav")[0].scrollIntoView();
});
}