こんにちは、なかにしです。
今回はいよいよ本題!
自動スクロールを実装していきます。
JSとJquery、両方で実装していきます!
JSで実装
▽こんな感じです
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Scroll-JS</title>
<link rel="stylesheet" href="./index.css">
<script src="./index.js" defer></script>
</head>
<body>
<div class="top _1">
<p>こんにちは。</p>
</div>
<div class="top _2">
<p>こんにちは。</p>
</div>
<div class="top _3">
<p id="jump">ここに飛びたいな</p>
</div>
<div class="top _4">
<p>こんにちは。</p>
</div>
<div class="top _5">
<p>こんにちは。</p>
</div>
<button onclick="topScroll()">途中に飛ばす</button>
</body>
</html>
html {
scroll-behavior: smooth;
}
body {
margin: 0;
}
p {
margin: 0;
}
.top {
width: 100vw;
height: 500px;
}
._1 {
background-color: #82D9FA;
}
._2 {
background-color: #6BA1E3;
}
._3 {
background-color: #7790FD;
}
._4 {
background-color: #6BE1E3;
}
._5 {
background-color: #77FDDA;
}
let i = 0;
let start = function () {
scrollTo(0, i);
i = i + 5;
if (
window.scrollY >=
document.documentElement.scrollHeight -
document.documentElement.clientHeight
) {
} else {
window.requestAnimationFrame(start);
}
};
window.setTimeout(start, 1000);
▽動作確認
Jqueryで実装
やり方は以下です。
①スクロール先の座標を取得
②ページ読み込み後、animationメソッドでスクロール
▽こんな感じ
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./index.css">
<title>Scroll-Jquery</title>
<script src="https://code.jquery.com/jquery-3.6.1.js"
integrity="sha256-3zlB5s2uwoUzrXK3BT7AX3FyvojsraNFxCc2vC/7pNI=" crossorigin="anonymous"></script>
<script src="./index.js"></script>
</head>
<body>
<div class="top _1">
<p>こんにちは。</p>
</div>
<div class="top _2">
<p>こんにちは。</p>
</div>
<div class="top _3">
<p id="jump">ここに飛びたいな</p>
</div>
<div class="top _4">
<p>こんにちは。</p>
</div>
<div class="top _5">
<p>こんにちは。</p>
</div>
<button id="scroll">途中に飛ばす</button>
</body>
</html>
html {
scroll-behavior: smooth;
}
body {
margin: 0;
}
p {
margin: 0;
}
.top {
width: 100vw;
height: 500px;
}
._1 {
background-color: #82D9FA;
}
._2 {
background-color: #6BA1E3;
}
._3 {
background-color: #7790FD;
}
._4 {
background-color: #6BE1E3;
}
._5 {
background-color: #77FDDA;
}
$(function () {
const position = $(document).height() - $(window).height();
$("html,body").animate({ scrollTop: position }, 20000, "linear", function () {
console.log("completed!");
});
});
▽動作確認
さいごに
自動スクロールの実装を思いついたきっかけは「Discordの謝辞のページ」という話をしましたが、実装の為にDiscordを調べていると、面白いところを見つけました。
謝辞のページで開発ツールを開いてみると…
注意喚起もびっくりしましたが、
最後に求人してました。
確かに開発者ツールはエンジニアくらいしか開かないもんな~
こういう奇抜なアイディアを出す人も、
それを許可する会社も本当に素敵だと思います。
さすがですね、Discordさん!
これからも愛用させていただきます🙌
今回はここまで!
Enjoy Hacking!!