[whatwg] Suggestion: Mouse Wheel events for Web Apps 1.0
Erik Arvidsson
erik at eae.net
Tue Jun 21 01:15:58 PDT 2005
Dave,
This sounds really sweet. How did you define the values for wheelDeltaX
and wheelDeltaY?
erik
Dave Hyatt wrote:
> Safari in the latest Tiger update supports WinIE's mouse wheel system.
> We also have a wheelDeltaX and wheelDeltaY so that horizontal wheeling
> can be supported. I had planned to propose this at some point but
> hadn't gotten around to it yet.
>
> dave
>
> On Jun 20, 2005, at 3:01 PM, Erik Arvidsson wrote:
>
>> Chris Griego wrote:
>>
>>> Currently the only way to capture and use the mouse wheel on the web
>>> is within the Macromedia Flash v7 plugin which added event handling
>>> for the mouse wheel.
>>>
>>
>> That's incorrect. Both IE (since 5.5?) and Mozilla supports this.
>> Unfortunately they do it in different ways.
>>
>> IE:
>>
>> element.attachEvent("onmousewheel", function () {
>> document.title = window.event.wheelDelta;
>> });
>>
>> Mozilla:
>>
>> element.addEventListener("DOMMouseScroll", function (e) {
>> document.title = e.detail;
>> }, true);
>>
>> The values here are bit different.
>>
>> In Mozilla, if you have set Mozilla to scroll a certain number of
>> rows you get the number of steps here. If you have it set to scroll
>> one page at a time you get large values and I'm not sure if these
>> represents the number of rows in some way.
>>
>> In IE it returns multiples of 120 but I guess it really represent 3
>> rows * 40 twips/row and that changing this in some control panel
>> applet or in the registry might give you other alternative results.
>>
>> The values in IE is negative when Mozilla is positive and the other
>> way around.
>>
>> Here is a pretty simple way to unify these to some extent:
>>
>> function getWheelDelta(e) {
>> if (window.event) { // IE
>> return e.wheelDelta / 40;
>> } else {
>> // In case the user has "one screen at a time" we get a
>> // very big value
>> var v = e.detail || 0;
>> if (v > 1000) {
>> v = 3;
>> } else if (v < -1000) {
>> v = -3;
>> }
>> return - v;
>> }
>> }
>>
>> erik
>>
>
More information about the whatwg
mailing list