質問: jQueryを使わずに 1jsで「スクロールされたことを感知して関数を実行」するにはどうすれば良いですか? 2ページの一番上に移動するとき、`window.scrollTo(0,0);`を使うと画面がパッと切り替わって移動するのを 「上へスクロールするアニメーションで移動」させるにはどうすれば良いですか? 特に2を解決したいです。CSS3を使うのはOKです。 jQueryを使わないという縛りは単に「jsで実装したい」という動機だけです。 jsは勉強中なので、できれば易しく教えてください。 文章やコードにわかりにくい部分があれば修正します。 回答よろしくお願いします。
回答: > > 1jsで「スクロールされたことを感知して関数を実行」するにはどうすれば良いですか? > > > 「onscroll」というものがあります。他にも「addEventListener」にて実装することもできます。 それ以外にもスクロール量を計算して行う他、色々な方法があります。 まずはご自身で適切なものを見極めて下さい。 > > 2ページの一番上に移動するとき、window.scrollTo(0,0);を使うと画面がパッと切り替わって移動するのを > > 「上へスクロールするアニメーションで移動」させるにはどうすれば良いですか? > > > スクロール(移動処理)を「setInterval」を用いて少しづつ繰り返し処理を行えば良いかと。(イメージ的にはパラパラ漫画ですね。) 今回の処理は最終的には止めなくては行けないと思いますので、止める時は「clearInterval」を使ってください。 > > jQueryを使わないという縛りは単に「jsで実装したい」という動機だけです。 > > > そのお気持ちは大変すばらしいと思います。 ですが、jqueryが使われている理由には様々なものがあります。 実装が簡素に出来るだけでなく、ブラウザ間の問題の他多くの要因があります。 それら全てを網羅したjavascriptでの実装には少々手間がかかります。 面倒かもしれませんが、頑張って下さい。