orientationchangeend
v1.1.2
Published
The orientationchangeend event is fired when the orientation of the device has changed and the associated rotation animation has been complete.
Downloads
18,151
Maintainers
Readme
orientationchangeend
The orientationchangeend
event is fired when the orientation of the device has changed and the associated rotation animation has been complete. orientationchangeend
enables you to capture dimensions of the element in the state after the rotation change.
The Underlying Implementation
There is no way to capture the end of the orientation change event because handling of the orientation change varies from browser to browser. Drawing a balance between the most reliable and the fastest way to detect the end of orientation change requires racing interval and timeout.
A listener is attached to the orientationchange
. Invoking the listener starts an interval. The interval is tracking the state of window.innerWidth
and window.innerHeight
. The orientationchangeend
event is fired when config.noChangeCountToEnd
number of consequent iterations do not detect a value mutation or after config.noEndTimeout
milliseconds, whichever happens first.
If there is a series of orientationchange
events fired one after another, where n
event orientationchangeend
event has not been fired before the n+2
orientationchange
, then orientationchangeend
will fire only for the last orientationchange
event in the series.
Usage
var config = {},
OCE;
// Start tracking the orientation change.
OCE = gajus.orientationchangeend(config);
// Attach event listener to the "orientationchangeend" event.
OCE.on('orientationchangeend', function () {
// The orientation have changed.
});
To make the orientationchangeend
event available to the window
, re-emit the event using a custom event:
var orientationchangeend;
// Make sure that you are not adding event emitter more than once.
if ('onorientationchangeend' in window) {
window.onorientationchangeend = true;
orientationchangeend = new CustomEvent('orientationchangeend');
OCE.on('orientationchangeend', function () {
window.dispatchEvent(orientationchangeend);
})
}
// Attach a listener to the "orientationchangeend" event.
window.addEventListener('orientationchangeend', function () {
console.log('The orientation of the device is now ' + window.orientation);
});
Configuration
| Name | Value | Default |
| --- | --- | --- |
| noChangeCountToEnd
| Number of iterations the subject of interval inspection must not mutate to fire orientationchangeend
. | 100
|
| noEndTimeout
| Number of milliseconds after which fire the orientationchangeend
if interval inspection did not do it before. | 1000
|
| debug
| Enables logging of the events | false
|
All of the configuration parameters are optional.
Download
Using Bower:
bower install orientationchangeend
Using NPM:
npm install orientationchangeend
The old-fashioned way, download either of the following files:
- https://raw.githubusercontent.com/gajus/orientationchangeend/master/dist/orientationchangeend.js
- https://raw.githubusercontent.com/gajus/orientationchangeend/master/dist/orientationchangeend.min.js