pointerevents.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*!
  2. {
  3. "name": "DOM Pointer Events API",
  4. "property": "pointerevents",
  5. "tags": ["input"],
  6. "authors": ["Stu Cox"],
  7. "notes": [{
  8. "name": "W3C Spec (Pointer Events)",
  9. "href": "https://www.w3.org/TR/pointerevents/"
  10. },{
  11. "name": "W3C Spec (Pointer Events Level 2)",
  12. "href": "https://www.w3.org/TR/pointerevents2/"
  13. },{
  14. "name": "MDN Docs",
  15. "href": "https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent"
  16. }],
  17. "warnings": ["This property name now refers to W3C DOM PointerEvents: https://github.com/Modernizr/Modernizr/issues/548#issuecomment-12812099"],
  18. "polyfills": ["pep"]
  19. }
  20. !*/
  21. /* DOC
  22. Detects support for the DOM Pointer Events API, which provides a unified event interface for pointing input devices, as implemented in IE10+, Edge and Blink.
  23. */
  24. define(['Modernizr', 'domPrefixes', 'hasEvent'], function(Modernizr, domPrefixes, hasEvent) {
  25. // **Test name hijacked!**
  26. // Now refers to W3C DOM PointerEvents spec rather than the CSS pointer-events property.
  27. Modernizr.addTest('pointerevents', function() {
  28. // Cannot use `.prefixed()` for events, so test each prefix
  29. var bool = false,
  30. i = domPrefixes.length;
  31. // Don't forget un-prefixed...
  32. bool = Modernizr.hasEvent('pointerdown');
  33. while (i-- && !bool) {
  34. if (hasEvent(domPrefixes[i] + 'pointerdown')) {
  35. bool = true;
  36. }
  37. }
  38. return bool;
  39. });
  40. });