-
Notifications
You must be signed in to change notification settings - Fork 47.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Pointer events specification #499
Comments
Any update on this? |
Maybe we should polyfill pointer events always, like in http://blogs.msdn.com/b/eternalcoding/archive/2013/01/16/hand-js-a-polyfill-for-supporting-pointer-events-on-every-browser.aspx. Having pointer events always available seems way better than having to manage touch and ouse events by hand. |
I would love if they were enabled with a polyfill by default :) Seems like On Fri, Nov 22, 2013 at 8:45 AM, Ben Alpert notifications@gh.neting.ccwrote:
|
There are issues with listening to touch events always... I forget what they are though. @zpao knows. But we should probably make this work with |
I think we can get rid of initializeTouchEvents if we attach the listeners to the elements which have handlers attached instead of at the |
Related: #184 |
+1 It would be cool to have support for pointer events, particularly regarding responsiveness in modern IE / IE mobile browsers. I hate having to add proprietary Any update here? |
@thauburger edit: there's an internal diff coming up for making onClick work without the delay. |
@chenglou Doesn't work in IE10 right now though, I believe. |
@spicyj For IE10 one can disable click delay with something like a, input, button {
-ms-touch-action: none !important;
} (suggested by fastclick.js) |
I'm compiling a PR based on http://www.w3.org/TR/pointerevents/ and will put it up shortly. |
Please allow touch-action attribute. http://www.polymer-project.org/platform/pointer-events.html |
Yes yes. https://github.com/Polymer/PointerEvents ftw. It’s the future! |
Having to use mouse and touch events separately is not in keeping with the otherwise forward thinking React framework. Pointer Events are the future, what is the status of this issue? |
Actually, PointerEvents and PointerGestures polyfills were deprecated recently in favor of https://github.com/Polymer/polymer-gestures https://groups.google.com/forum/#!topic/polymer-dev/ba4aDyOozm8 I believe the problem is shadow DOM which I am not using anyway. |
For now, I am hapilly using PointerEvents helper component: https://gist.github.com/steida/932d5309f6012b3eeb4e |
@steida We don't care about the development of Polymer though and AFAIK PointerEvents are still in the W3 HTML5 TR? |
fwiw, PointerEvents seem to be falling out of favor with browser devs. https://docs.google.com/document/d/1Bfcw9iR1SF2VYCXBegbqhbqWMim-ZEd7_iaQODE-RPY/ |
@iamdustan Very interesting, but it seems very weird if there will be nothing to replace it. |
@syranide Agreed. It seems to me like browser engineers are experimenting just like front end engineers are. Not sure if you read the entirety of that document, but it seemed to make mention that there is the possibility of the good parts of pointer events someday migrating into touch events. |
@iamdustan Just finished reading it through, very interesting stuff. My takeaway though is that most of the discussion isn't primarily about any short-comings of PointerEvents, but whether or not browsers really should provide such "sugar". So even if they do end up abandoning it, it may still make sense to provide a way to have it in React (because the demand is real), which naturally leads to the idea of plugging in any event sugar. But it could never benefit third-party components and I feel that many (including me) would be afraid to commit to "any one" community event sugar, they tend to be abandoned on a daily basis. An interesting alternative (perhaps) after reading through that discussion, what if one could specify event emulation modes per DOM-node, i.e, But we'll see where it goes. |
@syranide how would you imagine the react emulation mode rectify itself with the browser emulated events? (E.g. the iOS touch event cascade: http://www.quirksmode.org/blog/archives/2014/02/the_ios_event_c.html) |
@iamdustan I really have no idea, I have thankfully been able to stay away from touch events so far. But I imagine |
If I understand this correctly, we can only simulate a |
Any update on this? I am adding/removing pointer event listeners for in the component lifecycle. |
Same question here, I'd love to see it implemented soon. |
Really needed since pointer events are in Chrome now and going to be shipped in FF |
I wrote a component that allows declarative pointer event binding, and has been working for me as an easy substitute until React officially supports them. Update: <Pointable /> now lives in its own repo and is on npm: While it's great Chrome and FF are shipping pointer events, Safari is my biggest worry. To that end, this component plays well with the official pointer events polyfill project for wide support. |
I would love to see this... the parody between |
@spicyj Is this issue still something we'd want to implement? |
If we don't provide a polyfill and just add support for it in the This will still allow people to use the popular polyfill if they need pointer events on different platforms. React would simply handle this as another type of native events (similar to |
@philipp-spiess Even if pointer event support is added to React, integrating with PEP will still require manually setting/removing the touch-action attribute since it's a non-standard workaround required by PEP. Supporting Safari/iOS seems fairly important and That being said, if pointer events are added to React, I'll update Pointable so it handles |
@MilllerTime Thank you for your input! I agree that the Since support for Safari and iOS is vital, we could write a small guide somewhere as well where we explain how a user can set this up with the polyfill. Either by using your package or adding the If a more out-of-the-box support for this polyfill is desired, we could also whitelist the |
so React still doesn't support <div onPointerDown={console.log}>foo</div> the authors don't want it or they are open to a PR? |
Firefox 59 just shipped with support for pointer events enabled. There's now mainstream support for every browser except Safari. |
sounds about right 🙄 |
If anyone would like to add support it's pretty straightforward to add native events. Take a look at There is a question about whether React should polyfill the behave for old browsers, but I think it'll be safe to start with just allowing the native events if anyone wants to give it a shot |
This PR adds support for Pointer Events as discussed in facebook#499. It is heavily based on previous work in facebook#1389 and will add most pointer events to the `SimpleEventPlugin` and enter/leave events to `EnterLeaveEventPlugin`. I added a new DOM fixture to test all pointer events and make sure my implementation does indeed work. I tested on Chrome 65 and Firefox 59 without seeing any issues. If you think the fixtures is not necessary for future changes, I'm happy to remove them as well. The only open question is if we want to add a polyfill. For the sake of simplicity, I opted against a polyfill for this PR. However, this work is compatible with [PEP][] (I've verified this behavior in Safari 11 by loading PEP in `fixtures/dom/public/index.html`). [PEP]: https://github.com/jquery/PEP
This PR adds support for Pointer Events as discussed in facebook#499. It is heavily based on previous work in facebook#1389 and will add most pointer events to the `SimpleEventPlugin` and enter/leave events to `EnterLeaveEventPlugin`. I added a new DOM fixture to test all pointer events and make sure my implementation does indeed work. I tested on Chrome 65 and Firefox 59 without seeing any issues. If you think the fixtures is not necessary for future changes, I'm happy to remove them as well. The only open question is if we want to add a polyfill. For the sake of simplicity, I opted against a polyfill for this PR. However, this work is compatible with [PEP][] (I've verified this behavior in Safari 11 by loading PEP in `fixtures/dom/public/index.html`). [PEP]: https://github.com/jquery/PEP
What is your approach to IE10 touch events?
Hammer.js checks
window.navigator.pointerEnabled || window.navigator.msPointerEnabled
and then switchestouchstart
,touchmove
,touchend touchcancel
topointerdown MSPointerDown
,pointermove MSPointerMove
,pointerup pointercancel MSPointerUp MSPointerCancel
.The text was updated successfully, but these errors were encountered: