Skip to content

Commit

Permalink
Merge pull request #715 from jacobjuul/bugfix/supportPassive
Browse files Browse the repository at this point in the history
Bugfix/support passive
  • Loading branch information
meandmax authored Feb 20, 2018
2 parents dd8cdf6 + c89173b commit f057d4f
Show file tree
Hide file tree
Showing 8 changed files with 111 additions and 27 deletions.
51 changes: 42 additions & 9 deletions dist/jquery.lory.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ return /******/ (function(modules) { // webpackBootstrap
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 6);
/******/ return __webpack_require__(__webpack_require__.s = 7);
/******/ })
/************************************************************************/
/******/ ([
Expand Down Expand Up @@ -122,7 +122,11 @@ var _detectPrefixes = __webpack_require__(3);

var _detectPrefixes2 = _interopRequireDefault(_detectPrefixes);

var _dispatchEvent = __webpack_require__(4);
var _detectSupportsPassive = __webpack_require__(4);

var _detectSupportsPassive2 = _interopRequireDefault(_detectSupportsPassive);

var _dispatchEvent = __webpack_require__(5);

var _dispatchEvent2 = _interopRequireDefault(_dispatchEvent);

Expand Down Expand Up @@ -152,6 +156,7 @@ function lory(slider, opts) {

var index = 0;
var options = {};
var touchEventParams = (0, _detectSupportsPassive2.default)() ? { passive: true } : false;

/**
* if object is jQuery convert to native DOM element
Expand Down Expand Up @@ -410,7 +415,7 @@ function lory(slider, opts) {
nextCtrl.addEventListener('click', next);
}

frame.addEventListener('touchstart', onTouchstart);
frame.addEventListener('touchstart', onTouchstart, touchEventParams);

if (enableMouseEvents) {
frame.addEventListener('mousedown', onTouchstart);
Expand Down Expand Up @@ -507,8 +512,8 @@ function lory(slider, opts) {

// remove event listeners
frame.removeEventListener(prefixes.transitionEnd, onTransitionEnd);
frame.removeEventListener('touchstart', onTouchstart);
frame.removeEventListener('touchmove', onTouchmove);
frame.removeEventListener('touchstart', onTouchstart, touchEventParams);
frame.removeEventListener('touchmove', onTouchmove, touchEventParams);
frame.removeEventListener('touchend', onTouchend);
frame.removeEventListener('mousemove', onTouchmove);
frame.removeEventListener('mousedown', onTouchstart);
Expand Down Expand Up @@ -563,7 +568,7 @@ function lory(slider, opts) {
frame.addEventListener('mouseleave', onTouchend);
}

frame.addEventListener('touchmove', onTouchmove);
frame.addEventListener('touchmove', onTouchmove, touchEventParams);
frame.addEventListener('touchend', onTouchend);

var pageX = touches.pageX,
Expand Down Expand Up @@ -873,12 +878,40 @@ function detectPrefixes() {
"use strict";


Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = detectSupportsPassive;
function detectSupportsPassive() {
var supportsPassive = false;

try {
var opts = Object.defineProperty({}, 'passive', {
get: function get() {
supportsPassive = true;
}
});

window.addEventListener('testPassive', null, opts);
window.removeEventListener('testPassive', null, opts);
} catch (e) {}

return supportsPassive;
}

/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = dispatchEvent;

var _customEvent = __webpack_require__(5);
var _customEvent = __webpack_require__(6);

var _customEvent2 = _interopRequireDefault(_customEvent);

Expand All @@ -902,7 +935,7 @@ function dispatchEvent(target, type, detail) {
}

/***/ }),
/* 5 */
/* 6 */
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {
Expand Down Expand Up @@ -957,7 +990,7 @@ function CustomEvent (type, params) {
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))

/***/ }),
/* 6 */
/* 7 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
Expand Down
2 changes: 1 addition & 1 deletion dist/jquery.lory.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/jquery.lory.min.js.map

Large diffs are not rendered by default.

53 changes: 43 additions & 10 deletions dist/lory.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ return /******/ (function(modules) { // webpackBootstrap
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 7);
/******/ return __webpack_require__(__webpack_require__.s = 8);
/******/ })
/************************************************************************/
/******/ ([
Expand Down Expand Up @@ -122,7 +122,11 @@ var _detectPrefixes = __webpack_require__(3);

var _detectPrefixes2 = _interopRequireDefault(_detectPrefixes);

var _dispatchEvent = __webpack_require__(4);
var _detectSupportsPassive = __webpack_require__(4);

var _detectSupportsPassive2 = _interopRequireDefault(_detectSupportsPassive);

var _dispatchEvent = __webpack_require__(5);

var _dispatchEvent2 = _interopRequireDefault(_dispatchEvent);

Expand Down Expand Up @@ -152,6 +156,7 @@ function lory(slider, opts) {

var index = 0;
var options = {};
var touchEventParams = (0, _detectSupportsPassive2.default)() ? { passive: true } : false;

/**
* if object is jQuery convert to native DOM element
Expand Down Expand Up @@ -410,7 +415,7 @@ function lory(slider, opts) {
nextCtrl.addEventListener('click', next);
}

frame.addEventListener('touchstart', onTouchstart);
frame.addEventListener('touchstart', onTouchstart, touchEventParams);

if (enableMouseEvents) {
frame.addEventListener('mousedown', onTouchstart);
Expand Down Expand Up @@ -507,8 +512,8 @@ function lory(slider, opts) {

// remove event listeners
frame.removeEventListener(prefixes.transitionEnd, onTransitionEnd);
frame.removeEventListener('touchstart', onTouchstart);
frame.removeEventListener('touchmove', onTouchmove);
frame.removeEventListener('touchstart', onTouchstart, touchEventParams);
frame.removeEventListener('touchmove', onTouchmove, touchEventParams);
frame.removeEventListener('touchend', onTouchend);
frame.removeEventListener('mousemove', onTouchmove);
frame.removeEventListener('mousedown', onTouchstart);
Expand Down Expand Up @@ -563,7 +568,7 @@ function lory(slider, opts) {
frame.addEventListener('mouseleave', onTouchend);
}

frame.addEventListener('touchmove', onTouchmove);
frame.addEventListener('touchmove', onTouchmove, touchEventParams);
frame.addEventListener('touchend', onTouchend);

var pageX = touches.pageX,
Expand Down Expand Up @@ -873,12 +878,40 @@ function detectPrefixes() {
"use strict";


Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = detectSupportsPassive;
function detectSupportsPassive() {
var supportsPassive = false;

try {
var opts = Object.defineProperty({}, 'passive', {
get: function get() {
supportsPassive = true;
}
});

window.addEventListener('testPassive', null, opts);
window.removeEventListener('testPassive', null, opts);
} catch (e) {}

return supportsPassive;
}

/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = dispatchEvent;

var _customEvent = __webpack_require__(5);
var _customEvent = __webpack_require__(6);

var _customEvent2 = _interopRequireDefault(_customEvent);

Expand All @@ -902,7 +935,7 @@ function dispatchEvent(target, type, detail) {
}

/***/ }),
/* 5 */
/* 6 */
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {
Expand Down Expand Up @@ -957,8 +990,8 @@ function CustomEvent (type, params) {
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))

/***/ }),
/* 6 */,
/* 7 */
/* 7 */,
/* 8 */
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__(1);
Expand Down
2 changes: 1 addition & 1 deletion dist/lory.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/lory.min.js.map

Large diffs are not rendered by default.

10 changes: 6 additions & 4 deletions src/lory.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/* globals jQuery */

import detectPrefixes from './utils/detect-prefixes.js';
import supportsPassive from './utils/detect-supportsPassive';
import dispatchEvent from './utils/dispatch-event.js';
import defaults from './defaults.js';

Expand All @@ -24,6 +25,7 @@ export function lory (slider, opts) {

let index = 0;
let options = {};
let touchEventParams = supportsPassive() ? { passive: true } : false;

/**
* if object is jQuery convert to native DOM element
Expand Down Expand Up @@ -279,7 +281,7 @@ export function lory (slider, opts) {
nextCtrl.addEventListener('click', next);
}

frame.addEventListener('touchstart', onTouchstart);
frame.addEventListener('touchstart', onTouchstart, touchEventParams);

if (enableMouseEvents) {
frame.addEventListener('mousedown', onTouchstart);
Expand Down Expand Up @@ -372,8 +374,8 @@ export function lory (slider, opts) {

// remove event listeners
frame.removeEventListener(prefixes.transitionEnd, onTransitionEnd);
frame.removeEventListener('touchstart', onTouchstart);
frame.removeEventListener('touchmove', onTouchmove);
frame.removeEventListener('touchstart', onTouchstart, touchEventParams);
frame.removeEventListener('touchmove', onTouchmove, touchEventParams);
frame.removeEventListener('touchend', onTouchend);
frame.removeEventListener('mousemove', onTouchmove);
frame.removeEventListener('mousedown', onTouchstart);
Expand Down Expand Up @@ -426,7 +428,7 @@ export function lory (slider, opts) {
frame.addEventListener('mouseleave', onTouchend);
}

frame.addEventListener('touchmove', onTouchmove);
frame.addEventListener('touchmove', onTouchmove, touchEventParams);
frame.addEventListener('touchend', onTouchend);

const {pageX, pageY} = touches;
Expand Down
16 changes: 16 additions & 0 deletions src/utils/detect-supportsPassive.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
export default function detectSupportsPassive () {
let supportsPassive = false;

try {
let opts = Object.defineProperty({}, 'passive', {
get () {
supportsPassive = true;
}
});

window.addEventListener('testPassive', null, opts);
window.removeEventListener('testPassive', null, opts);
} catch (e) {}

return supportsPassive;
}

0 comments on commit f057d4f

Please sign in to comment.