本記事では、特定のセクションのサイズを自動的に調整したい時に使えるJavaScriptのコードについて紹介していきます。
目次
JavaScriptコードの紹介
このコードは、ブラウザウィンドウのサイズに応じて、特定のセクションのサイズを自動的に調整するためのJavaScriptです。以下は、コードの詳細な解説です。
function adjustSize() {
var sectionElements = document.querySelectorAll('.view-size-adjust');
var windowHeight = window.innerHeight;
sectionElements.forEach(function(sectionElement) {
var sectionHeight = sectionElement.scrollHeight;
var scale = Math.min(1, windowHeight / sectionHeight);
sectionElement.style.transform = 'scale(' + scale + ')';
});
}
window.addEventListener('resize', adjustSize);
1. adjustSize 関数の定義
function adjustSize() {
var sectionElements = document.querySelectorAll('.view-size-adjust');
var windowHeight = window.innerHeight;
sectionElements.forEach(function(sectionElement) {
var sectionHeight = sectionElement.scrollHeight;
var scale = Math.min(1, windowHeight / sectionHeight);
sectionElement.style.transform = 'scale(' + scale + ')';
});
}
a. セクション要素の取得
var sectionElements = document.querySelectorAll('.view-size-adjust');
document.querySelectorAll('.view-size-adjust')
は、クラス名がview-size-adjust
のすべての要素を取得します。NodeList
形式で返されます。
b. ウィンドウの高さの取得
var windowHeight = window.innerHeight;
window.innerHeight
を使用して、ブラウザウィンドウの高さを取得します。この値は、ウィンドウ内のビューポートの高さ(ピクセル)を表します。
c. 各セクションの高さとスケール計算
sectionElements.forEach(function(sectionElement) {
var sectionHeight = sectionElement.scrollHeight;
var scale = Math.min(1, windowHeight / sectionHeight);
sectionElement.style.transform = 'scale(' + scale + ')';
});
forEach
メソッドを使用して、取得した各セクション要素(sectionElement
)に対して処理を行います。sectionElement.scrollHeight
は、そのセクション要素の実際の高さ(コンテンツの高さ)を取得します。Math.min(1, windowHeight / sectionHeight)
では、ウィンドウの高さとセクションの高さの比率を計算し、その比率をスケールとして使用します。Math.min(1, ...)
により、スケールが1
を超えないようにします。これは、セクションがウィンドウよりも高い場合にのみ縮小し、そうでない場合は縮小しないためです。
sectionElement.style.transform = 'scale(' + scale + ')';
によって、CSSのtransform
プロパティを使用し、セクションを指定したスケールに縮小します。
2. resize イベントのリスナー追加
window.addEventListener('resize', adjustSize);
window.addEventListener('resize', adjustSize);
は、ブラウザウィンドウのサイズが変更されたとき(リサイズ時)にadjustSize
関数を実行するためのイベントリスナーを追加します。これにより、ウィンドウサイズが変わるたびに、セクションのスケールが再計算されて適用されます。
まとめ
このコードは、ブラウザウィンドウの高さに応じて、.view-size-adjust
クラスを持つセクション要素のサイズを自動的に調整するためのものです。具体的には、ウィンドウの高さに合わせて、セクション要素を縮小(スケールダウン)し、ウィンドウ内に収めることが目的です。これにより、ウィンドウのサイズが変更されても、特定のセクションが適切なサイズで表示されます。