概要:このチュートリアルでは、scrollIntoView()
メソッドを使用して要素をビューにスクロールする方法を学びます。
要素のリストがあり、特定の要素を強調表示してビューにスクロールしたいとします。
これを実現するには、element.scrollIntoView()
メソッドを使用できます。element.scrollIntoView()
は、ブール値またはオブジェクトを受け入れます。
element.scrollIntoView(alignToTop);
Code language: JavaScript (javascript)
または
element.scrollIntoView(options);
Code language: CSS (css)
このメソッドは、以下の2つの引数のいずれかを受け入れます。
alignToTop
alignToTop
はブール値です。
true
に設定されている場合、このメソッドは要素の上部をビューポートの上部、またはスクロール可能な祖先の表示領域の上部に合わせます。
alignToTop
がfalse
に設定されている場合、このメソッドは要素の下部をビューポートの下部、またはスクロール可能な祖先の表示領域の下部に合わせます。
デフォルトでは、alignToTop
はtrue
です。
options
options
引数は、ビュー内での要素の配置をより詳細に制御できるオブジェクトです。ただし、Webブラウザのサポートは若干異なる場合があります。
options
オブジェクトには、以下のプロパティがあります。
behavior
プロパティは、トランジションアニメーションを定義します。behavior
プロパティは、auto
またはsmooth
の2つの値を受け入れます。デフォルトはauto
です。block
プロパティは、垂直方向の配置を定義します。start
、center
、end
、nearest
の4つの値のいずれかを受け入れます。デフォルトはstart
です。inline
プロパティは、水平方向の配置を定義します。start
、center
、end
、nearest
の4つの値のいずれかを受け入れます。デフォルトはnearest
です。
JavaScript scrollIntoView() の例
プログラミング言語のリストを含むHTMLページがあるとします。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JS scrollIntoView Demo</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<button class="btn">Scroll Into View</button>
<ul>
<li>C</li>
<li>Java</li>
<li>Python</li>
<li>C++</li>
<li>C#</li>
<li>Go</li>
<li>Visual Basic</li>
<li>JavaScript</li>
<li>PHP</li>
<li>SQL</li>
<li>R</li>
<li>Swift</li>
<li class="special">JavaScript</li>
<li>MATLAB</li>
<li>Assembly language</li>
<li>Ruby</li>
<li>PL/SQL</li>
<li>Classic Visual Basic</li>
<li>Perl</li>
<li>Scratch</li>
<li>Objective-C</li>
</ul>
</div>
<script src="scrollIntoView.js"></script>
</body>
</html>
Code language: HTML, XML (xml)
スクロールしないと、special
というクラスを持つJavaScript
リストアイテムはビューポートに表示されません。「ビューにスクロール」ボタンをクリックすると、JavaScript
リストアイテムがビューにスクロールされます。
let btn = document.querySelector('.btn');
let el = document.querySelector('.special');
btn.addEventListener('click', function () {
el.scrollIntoView(true);
});
Code language: JavaScript (javascript)
動作方法
- 最初に、
btn
クラスを持つボタンとspecial
クラスを持つリストアイテムを選択します。 - 次に、ボタンのクリックイベントにイベントリスナーをアタッチします。
- 最後に、クリックイベントハンドラーで
el.scrollIntoView(true)
メソッドを呼び出すことで、JavaScript
リストアイテムをビューポートにスクロールします。
こちらがJavaScript scrollIntoView() のデモです。
JavaScript
リストアイテムをビューの下部に合わせるには、scrollIntoView()
メソッドにfalse
値を渡します。
let btn = document.querySelector('.btn');
let el = document.querySelector('.special');
btn.addEventListener('click', function() {
el.scrollIntoView(false);
});
Code language: JavaScript (javascript)
このチュートリアルでは、JavaScriptのscrollIntoView()
メソッドを使用して要素をビューポートにスクロールする方法を学習しました。