[Edge]。→
ユーザーがポインティング デバイス(通常はマウス)のホイール ボタンを回転させたときに発行されます。
このイベントは標準外、非推奨の mousewheel イベントを置き換えるものです。
| バブリング | あり |
|---|---|
| キャンセル | 可 |
| インターフェイス | WheelEvent |
| イベント ハンドラー プロパティ |
Note: wheel イベントと scroll イベントを混同しないでください。wheel イベントの既定のアクションは実装固有のものであり、必ずしも scroll イベントを発行するわけではありません。その場合でも、ホイールイベントの delta* 値は必ずしもコンテンツのスクロール方向を反映しているとは限りません。したがって、スクロールの方向を取得するために、wheel イベントの delta* プロパティに頼らないようにしてください。代わりに、scroll イベント内のターゲットの scrollLeft や scrollTop の値の変化を検出するようにしてください。
マウス(またはその他のポインティング デバイスの)ホイールを使用して要素を拡大縮小する方法を示します。
HTML:
<div>Scale me with your mouse wheel.</div>
CSS:
body {
min-height: 100vh;
margin: 0;
display: flex;
align-items: center;
justify-content: center;
}
div {
width: 105px;
height: 105px;
background: #cdf;
padding: 5px;
}
JavaScript:
function zoom(event) {
event.preventDefault();
scale += event.deltaY * -0.01;
// Restrict scale
scale = Math.min(Math.max(.125, scale), 4);
// Apply scale transform
el.style.transform = `scale(${scale})`;
}
let scale = 1;
const el = document.querySelector('div');
el.onwheel = zoom;
→Math.min()、Math.max()。
HTML:
<DIV id=IdTest style="width:100px; background-color:#ddf">[DIV要素<B>[B要素]</B>]</DIV>
JavaScript:
Scale=1; //倍率の初期値。
function Job(eve){ //ホイールが回された時の処理:eveには WheelEvent オブジェクトが入るようです。
eve.preventDefault(); //ホイール本来のスクロール動作をさせないようにする。
D=eve; //=[object]:[object WheelEvent]
//isTrusted=[boolean]:true
//deltaX=[number]:0
//deltaY=[number]:100。又は -100(回転方向で異なる)
//deltaZ=[number]:0
//deltaMode=[number]:0
//wheelDeltaX=[number]:0
//wheelDeltaY=[number]:-120。又は 120(回転方向で異なる)
//wheelDelta=[number]:-120。又は 120(回転方向で異なる)
//…
// let E=eve.target;
let E=eve.currentTarget; //イベントが起きた要素を得る。
Scale=Scale + (eve.deltaY/1000); //倍率の計算。
E.style.transform="scale(" +scale+ ")"; //拡大縮小。
}
IdTest.onwheel=Job; //ホイールが回転した時のイベントを割り当てる。
→Event.preventDefault()、Event.target、Event.currentTarget、CSS:transform、CSS:scale()。