Travis build: 655

This commit is contained in:
Travis CI
2017-12-30 11:09:01 +00:00
parent 4d9d8e5c32
commit b25686b93e
3 changed files with 63 additions and 5 deletions

View File

@ -91,6 +91,7 @@
* [`hasClass`](#hasclass)
* [`hide`](#hide)
* [`httpsRedirect`](#httpsredirect)
* [`onUserInputChange`](#onuserinputchange)
* [`redirect`](#redirect)
* [`scrollToTop`](#scrolltotop)
* [`setStyle`](#setstyle)
@ -1704,6 +1705,45 @@ const httpsRedirect = () => {
<br>[⬆ Back to top](#table-of-contents)
### onUserInputChange
Run the callback whenever the user input type changes (`mouse` or `touch`). Useful for enabling/disabling code depending on the input device. This process is dynamic and works with hybrid devices (e.g. touchscreen laptops).
Use two event listeners. Assume `mouse` input initially and bind a `touchstart` event listener to the document.
On `touchstart`, add a `mousemove` event listener to listen for two consecutive `mousemove` events firing within 20ms, using `performance.now()`.
Run the callback with the input type as an argument in either of these situations.
```js
const onUserInputChange = callback => {
let type = 'mouse',
lastTime = 0;
const mousemoveHandler = () => {
const now = performance.now();
if (now - lastTime < 20)
(type = 'mouse'), callback(type), document.removeEventListener('mousemove', mousemoveHandler);
lastTime = now;
};
document.addEventListener('touchstart', () => {
if (type === 'touch') return;
(type = 'touch'), callback(type), document.addEventListener('mousemove', mousemoveHandler);
});
};
```
<details>
<summary>Examples</summary>
```js
onUserInputChange(type => {
console.log('The user is now using', type, 'as an input method.');
});
```
</details>
<br>[⬆ Back to top](#table-of-contents)
### redirect
Redirects to a specified URL.

File diff suppressed because one or more lines are too long

View File

@ -8,16 +8,17 @@ Run the callback with the input type as an argument in either of these situation
```js
const onUserInputChange = callback => {
let type = 'mouse', lastTime = 0;
let type = 'mouse',
lastTime = 0;
const mousemoveHandler = () => {
const now = performance.now();
if (now - lastTime < 20)
type = 'mouse', callback(type), document.removeEventListener('mousemove', mousemoveHandler);
(type = 'mouse'), callback(type), document.removeEventListener('mousemove', mousemoveHandler);
lastTime = now;
};
document.addEventListener('touchstart', () => {
if (type === 'touch') return;
type = 'touch', callback(type), document.addEventListener('mousemove', mousemoveHandler);
(type = 'touch'), callback(type), document.addEventListener('mousemove', mousemoveHandler);
});
};
```