HTML DOM WheelEvent deltaYプロパティの使い方と実例解説
HTML DOMのWheelEvent deltaYプロパティは、ユーザーが上方向または下方向のどちらにスクロールしているかに対応する符号付きの数値を返します。上下以外の方向(左右など)にスクロールした場合、このプロパティは0を返します。
具体的には、下方向にスクロールした場合は正の値、上方向にスクロールした場合は負の値が返され、スクロール量が大きいほど値の絶対値も大きくなります。
構文
以下が構文です。
符号付き数値を取得する場合:
event.deltaY
戻り値
deltaYプロパティが返す値は以下のとおりです。
- 正の値:下方向にスクロールした場合
- 負の値:上方向にスクロールした場合
- 0:左右方向など、上下以外の方向にスクロールした場合
使用例
HTML DOM WheelEvent deltaYプロパティの具体的な使用例を見てみましょう。このサンプルでは、div要素上でのスクロール方向に応じて、要素の拡大・縮小や移動、色の変化を行います。
<!DOCTYPE html>
<html>
<head>
<title>HTML DOM WheelEvent deltaY</title>
<style>
* {
padding: 2px;
margin:5px;
}
form {
width:70%;
margin: 0 auto;
text-align: center;
}
input[type="button"] {
border-radius: 10px;
}
#content {
width: 80px;
height: 80px;
margin: 20px 0 0 50px;
background-color: #dc3545;
transition: all 2s ease-in-out;
}
</style>
</head>
<body>
<form>
<fieldset>
<legend>HTML-DOM-WheelEvent-deltaY</legend>
<div id="content" onwheel="setControls(event)"></div>
<input type="button" value="reset" onclick="resetCSS()">
<div id="divDisplay">Scroll over div element</div>
</fieldset>
</form>
<script>
var playDiv = document.getElementById("content");
var count = 40;
function setControls(event) {
var valX = event.deltaX;
var valY = event.deltaY;
if(valY>0){
playDiv.style.transform = "scale(0.5)";
playDiv.style.backgroundColor = "rgba(0, 188, 212, 0.47)";
playDiv.style.borderRadius = "50%";
}
else if(valY<0){
playDiv.style.transform = "scale(1.5)";
playDiv.style.backgroundColor = "rgba(0, 188, 0, 0.47)";
playDiv.style.borderRadius = "0px";
}
else if(valX>0){
count+=40;
playDiv.style.transform = "translateX("+count+"px)";
}
else{
count-=40;
playDiv.style.transform = "translateX("+count+"px)";
}
}
function resetCSS(){
count = 40;
var st = "width: 80px;height: 80px;margin: 20px 0 0 50px;background-color:
#dc3545;transition: all 2s ease-in-out;";
playDiv.style = st;
}
</script>
</body>
</html>出力結果
div要素上で下方向にスクロールした場合、要素が縮小され、水色の円形に変化します。

div要素上で上方向にスクロールした場合、要素が拡大され、緑色の四角形に変化します。

リセットボタンをクリックすると、要素が初期状態に戻ります。

まとめ
deltaYプロパティは、ホイールイベントにおける垂直方向のスクロール量を判定する際に非常に便利です。類似のプロパティとして、水平方向のスクロール量を取得するdeltaX、奥行き方向のスクロール量を取得するdeltaZも用意されており、これらを組み合わせることで、多方向のスクロール操作に対応したインタラクティブなWebページを実装できます。
-
HTML DOM offsetWidthプロパティの使い方をわかりやすく解説
HTML DOM offsetWidthプロパティとは HTML DOMのoffsetWidthプロパティは、要素の実際の表示幅に対応する数値(ピクセル単位の整数)を返します。この幅にはパディング・ボーダー(境界線)・スクロールバーが含まれますが、マージンは含まれません。なお、offsetWidthは読み取り専用のプロパティのため、値を直接代入することはできません。 構文 HTMLElement.offsetWidth 要素が非表示(display: none など)の状態にある場合は、0 が返されます。 関連プロパティとの違い offsetWidth: パディング+ボーダー+スクロールバー
-
HTML DOM WheelEvent deltaXプロパティとは?水平スクロール量の取得方法を解説
HTML DOMのWheelEvent deltaXプロパティは、ユーザーがマウスホイールなどで水平方向(左または右)にスクロールした量を符号付きの数値として返します。スクロール方向が垂直方向など水平以外の場合、このプロパティは0を返します。戻り値の意味正の値:ユーザーが右方向にスクロールした負の値:ユーザーが左方向にスクロールした0:水平方向のスクロールが行われていないなお、垂直方向のスクロール量を取得する場合は、同じWheelEventオブジェクトが持つdeltaYプロパティを使用します。構文構文は以下の通りです。符号付きの数値を返します。event.deltaXそれでは、HTML DOM