Giter VIP home page Giter VIP logo

events-polyfill's Introduction

Polyfill different events classes and methods to match last ES7 specifications

Tested on IE 10+

Install

npm i events-polyfill --save

For fast use import 'events-polyfill' (will import index.js).

[INFO] New release v2 that allow you to import specific polyfills only:

  • you can use webpack (or any bundler) to import only required polyfills from src/.
  • or you can import index.js (or index.min.js) at the root to polyfill everything.

src/constructors/*.js

Polyfill for : Event, CustomEvent, MouseEvent, KeyboardEvent, FocusEvent PointerEvent

src/ListenerOptions.js

Polyfill for the options argument of :

EventTarget.prototype.addEventListener(type, listener[, options]);
EventTarget.prototype.removeEventListener(type, listener[, options]);

options : last parameter which replace boolean useCapture

  • once : trigger only once this event (default: false)
  • passive : allow browser to continue animations (ex: while scrolling) by 'disabling' event.preventDefault() (default: false)
  • capture : replace useCapture (default: false)

Example:

document.addEventListener('click', function() {
    console.log('clicked once');
}, { once: true });

src/ListenerEventTypes.js

Polyfill for the type argument of :

EventTarget.prototype.addEventListener(type, listener[, options]);
EventTarget.prototype.removeEventListener(type, listener[, options]);

Polyfill vendor prefixed events like 'pointerlockchange' (try 'pointerlockchange', 'mozpointerlockchange' and 'webkitpointerlockchange') and some 'experimental' events like 'wheel' (try 'wheel', 'mousewheel', 'DOMMouseScroll')

  • [INFO] If option can't be polyfilled : throw an error (allow you to check is event type is supported)

Currently polyfilled types :

[
    'wheel',
    'pointerlockchange', 'pointerlockerror',
    'fullscreenchange', 'fullscreenerror',
    'animationend', 'animationiteration', 'animationstart', 'transitionend',
    'pointercancel', 'pointerdown', 'pointerhover', 'pointermove', 'pointerout', 'pointerover', 'pointerup'
]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.