If your pointing device of choice is a mouse and it has a wheel, there’s an event to hone in on the use you make of that mouse wheel …
- normally used for scrolling in Y … but, today, thanks to https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event, reimagined as …
- a scaling and rotating and skewering mechanism for our lightblue div element
It’s a simple “proof of concept” …
<html>
<head>
<title>Mouse Wheel Event - RJM Programming - June, 2022 ... Thanks to https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event</title>
<style>
div {
width:150px;
height:150px;
background-color: lightblue;
text-align: center;
margin-left: 35%;
margin-top: 35vh;
}
</style>
<script type='text/javascript'>
var scale = 1;
var rotate = 0;
var skew = 0;
var el=null;
function zoom(event) {
event.preventDefault();
scale -= event.deltaY * 0.01;
rotate -= event.deltaY * 0.01 * 90;
skew -= event.deltaY * 0.01 * 30;
// Restrict scale
scale = Math.min(Math.max(.125, scale), 4);
rotate = Math.min(Math.max(-180.0, rotate), 180.0);
// Apply scale transform
el.style.transform = 'scale(' + scale + ') rotate(' + rotate + 'deg) skew(' + skew + 'deg)';
}
function onl() {
el = document.querySelector('div');
el.addEventListener('wheel', zoom); //el.onwheel = zoom;
}
</script>
</head>
<body onload=onl();>
<h1>Mouse Wheel Event</h1>
<h3>RJM Programming - June, 2022</h3>
<h4>Thanks to <a target=_blank title='https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event' href='//developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event'>https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event</a></h4>
<div><br><br>Scale and<br>
rotate and<br>
skew me<br>
with your <br>
mouse wheel.<br></div>
</body>
</html>
… web application …
If this was interesting you may be interested in this too.