今AngularJS8.2を使って、よくある画面を下にスクロールした時に、画面トップに戻れる操作を実現したいと思ってます。
動作自体はscroll-behaviorを使い、下記で戻る動きは実現できているのですが、ブラウザ上にスクロールがあるか無いかで、下記のdiv(class="pagetop")の要素の表示非表示を切り替えたいと思ってます。
jQuery的な考えかも知れませんが、その為には画面全体にbodyに対してのScrollEventを取得し、動的に表示非表示判定を行わなければいけないと思うのですが、jQueryで書く所のこの様な取得の仕方は可能でしょうか?
$(window).scroll(function () {
var now = $(window).scrollTop();
console.log(now);
});
ググると、昔のVersionでは使われてた$anchorScrollは動作しない、ionicを使う様に書かれてたりしたのですが、実現は出来ないのでしょうか?
ご存知の方いらっしゃいましたらお答えいただければ幸いです。
(今後、キー操作のEventを同じ様に画面全体でEventを張って取らないといけない操作もあり、出来るだけJSの記述だけで完結させたいのが第一希望です)
HTML
1<div class="pagetop" style="display: block;"> 2 <a (click)="scrollToElement('top')"> 3 <i>トップへ</i> 4 </a> 5</div> 6
JS
1 scrollToElement(nav: string): void { 2 const element = document.querySelector("#"+nav) 3 if (element) element.scrollIntoView({ behavior: 'smooth', block: 'start' }) 4 }
CSS
1body { 2 scroll-behavior: smooth; 3}
あなたの回答
tips
プレビュー