We actually have not implemented wheelX and wheelY yet... we just did wheelDelta. So the other two are open for specifying. :)

dave

On Jun 21, 2005, at 8:09 AM, Matthew Raymond wrote:

Dave Hyatt wrote:

Safari in the latest Tiger update supports WinIE's mouse wheel system.


Mozilla uses addEventListener[1], which is in DOM 2 and DOM 3. (DOM 3 even adds addEventListenerNS for different namespaces.) By contrast, IE uses attachEvent, which is proprietary and doesn't allow you to specify the the initial capture. As a result, I would NOT support using attachEvent in any WHATWG standard, especially since it does not appear functionally different from addEventListener. (Is there even an IE-proprietary event listener method that supports namespaces?)

> We also have a wheelDeltaX and wheelDeltaY so that

horizontal wheeling can be supported.


I'm thinking we should define new properties wheelDeltaX and wheelDeltaY for MouseEvent. [2]


Chris Griego wrote:
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);


Note that for attachEvent, you name the HTML attribute name and not the actual DOM event type. Therefore, in DOM, if you wanted a listener for a mousemove, you'd use the string "mousemove" and not "onmousemove". DOM also employs the method of using "DOM" at the beginning of strings that don't correspond to the associated "on" attributes in HTML 4.01. Since there is no official HTML5, this makes Mozilla's implementation above the most standards correct.

I think I'd prefer something like "mousewheel" or "DOMmousewheel". I'm not sure a new |onmousewheel| attribute is called for, though, because there might be semantic arguments against it. Anyone have a take on this, by the way?

   So, I guess I'd like to see this happen:

| element.addEventListener("mousewheel",
|   function (e) { document.title = getWheelDelta(e); },
|   true);
|
| function getWheelDelta(e) {
|   return e.wheelDeltaY;
| }


I had planned to propose this at some point but hadn't gotten
around to it yet.


I'm hoping you aren't referring to the blatantly nonstandard IE event model shown in Chris Griego's IE example...

[1] http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events- EventTarget-addEventListener [2] http://www.w3.org/TR/DOM-Level-3-Events/events.html#Events- MouseEvent


Reply via email to