diff --git a/dist/slideout.js b/dist/slideout.js index d1f0f46..aac94b3 100644 --- a/dist/slideout.js +++ b/dist/slideout.js @@ -2,41 +2,41 @@ var Slideout = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; - +/******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { - +/******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; - +/******/ /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; - +/******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - +/******/ /******/ // Flag the module as loaded /******/ module.l = true; - +/******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } - - +/******/ +/******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; - +/******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; - +/******/ /******/ // identity function for calling harmony imports with the correct context /******/ __webpack_require__.i = function(value) { return value; }; - +/******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { @@ -47,7 +47,7 @@ var Slideout = /******/ }); /******/ } /******/ }; - +/******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? @@ -56,13 +56,13 @@ var Slideout = /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; - +/******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; - +/******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; - +/******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 2); /******/ }) @@ -80,7 +80,7 @@ var requestAnimFrame = (function() { function (callback) { window.setTimeout(callback, 1000 / 60); }; -}()); +}().bind(window)); function decouple(node, event, fn) { var eve, @@ -353,6 +353,7 @@ function Slideout(options) { // Sets default values this._startOffsetX = 0; + this._startOffsetY = 0; this._currentOffsetX = 0; this._opening = false; this._moved = false; @@ -538,6 +539,7 @@ Slideout.prototype._initTouchEvents = function() { self._moved = false; self._opening = false; self._startOffsetX = eve.touches[0].pageX; + self._startOffsetY = eve.touches[0].pageY; var offset = self._startOffsetX; if (self._side === 'right') { @@ -555,6 +557,7 @@ Slideout.prototype._initTouchEvents = function() { this._onTouchCancelFn = function() { self._moved = false; self._opening = false; + self._preventOpen = false; }; this.panel.addEventListener('touchcancel', this._onTouchCancelFn); @@ -568,6 +571,7 @@ Slideout.prototype._initTouchEvents = function() { self.emit('translateend'); (self._opening && Math.abs(self._currentOffsetX) > self._tolerance) ? self.open() : self.close(); } + self._preventOpen = false; self._moved = false; }; @@ -588,6 +592,7 @@ Slideout.prototype._initTouchEvents = function() { } var dif_x = eve.touches[0].clientX - self._startOffsetX; + var dif_y = eve.touches[0].clientY - self._startOffsetY; var translateX = self._currentOffsetX = dif_x; @@ -620,6 +625,9 @@ Slideout.prototype._initTouchEvents = function() { self._translateXTo(translateX); self.emit('translate', translateX); self._moved = true; + } else if (Math.abs(dif_y) > 40 && !self._opening) { + self._preventOpen = true; + return; } }; diff --git a/dist/slideout.min.js b/dist/slideout.min.js index c768291..b33f98f 100644 --- a/dist/slideout.min.js +++ b/dist/slideout.min.js @@ -1 +1 @@ -var Slideout=function(t){var e={};function n(i){if(e[i])return e[i].exports;var s=e[i]={i:i,l:false,exports:{}};t[i].call(s.exports,s,s.exports,n);s.l=true;return s.exports}n.m=t;n.c=e;n.i=function(t){return t};n.d=function(t,e,i){if(!n.o(t,e)){Object.defineProperty(t,e,{configurable:false,enumerable:true,get:i})}};n.n=function(t){var e=t&&t.__esModule?function i(){return t["default"]}:function s(){return t};n.d(e,"a",e);return e};n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)};n.p="";return n(n.s=2)}([function(t,e,n){"use strict";var i=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}();function s(t,e,n){var s,o=false;function r(t){s=t;a()}function a(){if(!o){i(h);o=true}}function h(){n.call(t,s);o=false}t.addEventListener(e,r,false);return r}t.exports=s},function(t,e,n){"use strict";function i(){}i.prototype.on=function(t,e){this._collection=this._collection||{};this._collection[t]=this._collection[t]||[];this._collection[t].push(e);return this};i.prototype.once=function(t,e){var n=this;function i(){n.off(t,i);e.apply(this,arguments)}i.listener=e;this.on(t,i);return this};i.prototype.off=function(t,e){var n=this._collection&&this._collection[t],i=0;if(n!==undefined){for(i;it._grabWidth};this.panel.addEventListener(p.start,this._resetTouchFn);this.menu.addEventListener(p.start,this._resetTouchFn);this._onTouchCancelFn=function(){t._moved=false;t._opening=false};this.panel.addEventListener("touchcancel",this._onTouchCancelFn);this.menu.addEventListener("touchcancel",this._onTouchCancelFn);this._onTouchEndFn=function(){if(t._moved){t.emit("translateend");t._opening&&Math.abs(t._currentOffsetX)>t._tolerance?t.open():t.close()}t._moved=false};this.panel.addEventListener(p.end,this._onTouchEndFn);this.menu.addEventListener(p.end,this._onTouchEndFn);this._onTouchMoveFn=function(e){if(l||t._preventOpen||typeof e.touches==="undefined"||v(e.target)){return}var n=e.touches[0].clientX-t._startOffsetX;var i=t._currentOffsetX=n;if(Math.abs(i)>t._padding){return}if(Math.abs(n)>20){t._opening=true;var s=n*t._orientation;if(t._opened&&s>0||!t._opened&&s<0){return}if(!t._moved){t.emit("translatestart")}if(s<=0){i=n+t._padding*t._orientation;t._opening=false}if(!(t._moved&&f.classList.contains(a))){f.classList.add(a)}t._translateXTo(i);t.emit("translate",i);t._moved=true}};this.panel.addEventListener(p.move,this._onTouchMoveFn);this.menu.addEventListener(p.move,this._onTouchMoveFn);return this};y.prototype.enableTouch=function(){this._touch=true;return this};y.prototype.disableTouch=function(){this._touch=false;return this};y.prototype.destroy=function(){this.close();document.removeEventListener(p.move,this._preventMove);this.panel.removeEventListener(p.start,this._resetTouchFn);this.panel.removeEventListener("touchcancel",this._onTouchCancelFn);this.panel.removeEventListener(p.end,this._onTouchEndFn);this.panel.removeEventListener(p.move,this._onTouchMoveFn);document.removeEventListener("scroll",this._onScrollFn);this.open=this.close=function(){};return this};t.exports=y}]); \ No newline at end of file +var Slideout=function(t){var e={};function n(i){if(e[i])return e[i].exports;var s=e[i]={i:i,l:false,exports:{}};t[i].call(s.exports,s,s.exports,n);s.l=true;return s.exports}n.m=t;n.c=e;n.i=function(t){return t};n.d=function(t,e,i){if(!n.o(t,e)){Object.defineProperty(t,e,{configurable:false,enumerable:true,get:i})}};n.n=function(t){var e=t&&t.__esModule?function e(){return t["default"]}:function e(){return t};n.d(e,"a",e);return e};n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)};n.p="";return n(n.s=2)}([function(t,e,n){"use strict";var i=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}().bind(window);function s(t,e,n){var s,o=false;function r(t){s=t;a()}function a(){if(!o){i(h);o=true}}function h(){n.call(t,s);o=false}t.addEventListener(e,r,false);return r}t.exports=s},function(t,e,n){"use strict";function i(){}i.prototype.on=function(t,e){this._collection=this._collection||{};this._collection[t]=this._collection[t]||[];this._collection[t].push(e);return this};i.prototype.once=function(t,e){var n=this;function i(){n.off(t,i);e.apply(this,arguments)}i.listener=e;this.on(t,i);return this};i.prototype.off=function(t,e){var n=this._collection&&this._collection[t],i=0;if(n!==undefined){for(i;it._grabWidth};this.panel.addEventListener(p.start,this._resetTouchFn);this.menu.addEventListener(p.start,this._resetTouchFn);this._onTouchCancelFn=function(){t._moved=false;t._opening=false;t._preventOpen=false};this.panel.addEventListener("touchcancel",this._onTouchCancelFn);this.menu.addEventListener("touchcancel",this._onTouchCancelFn);this._onTouchEndFn=function(){if(t._moved){t.emit("translateend");t._opening&&Math.abs(t._currentOffsetX)>t._tolerance?t.open():t.close()}t._preventOpen=false;t._moved=false};this.panel.addEventListener(p.end,this._onTouchEndFn);this.menu.addEventListener(p.end,this._onTouchEndFn);this._onTouchMoveFn=function(e){if(l||t._preventOpen||typeof e.touches==="undefined"||m(e.target)){return}var n=e.touches[0].clientX-t._startOffsetX;var i=e.touches[0].clientY-t._startOffsetY;var s=t._currentOffsetX=n;if(Math.abs(s)>t._padding){return}if(Math.abs(n)>20){t._opening=true;var o=n*t._orientation;if(t._opened&&o>0||!t._opened&&o<0){return}if(!t._moved){t.emit("translatestart")}if(o<=0){s=n+t._padding*t._orientation;t._opening=false}if(!(t._moved&&f.classList.contains(a))){f.classList.add(a)}t._translateXTo(s);t.emit("translate",s);t._moved=true}else if(Math.abs(i)>40&&!t._opening){t._preventOpen=true;return}};this.panel.addEventListener(p.move,this._onTouchMoveFn);this.menu.addEventListener(p.move,this._onTouchMoveFn);return this};y.prototype.enableTouch=function(){this._touch=true;return this};y.prototype.disableTouch=function(){this._touch=false;return this};y.prototype.destroy=function(){this.close();document.removeEventListener(p.move,this._preventMove);this.panel.removeEventListener(p.start,this._resetTouchFn);this.panel.removeEventListener("touchcancel",this._onTouchCancelFn);this.panel.removeEventListener(p.end,this._onTouchEndFn);this.panel.removeEventListener(p.move,this._onTouchMoveFn);document.removeEventListener("scroll",this._onScrollFn);this.open=this.close=function(){};return this};t.exports=y}]); \ No newline at end of file diff --git a/index.js b/index.js index 332d45f..b118b99 100644 --- a/index.js +++ b/index.js @@ -67,6 +67,7 @@ function Slideout(options) { // Sets default values this._startOffsetX = 0; + this._startOffsetY = 0; this._currentOffsetX = 0; this._opening = false; this._moved = false; @@ -252,6 +253,7 @@ Slideout.prototype._initTouchEvents = function() { self._moved = false; self._opening = false; self._startOffsetX = eve.touches[0].pageX; + self._startOffsetY = eve.touches[0].pageY; var offset = self._startOffsetX; if (self._side === 'right') { @@ -269,6 +271,7 @@ Slideout.prototype._initTouchEvents = function() { this._onTouchCancelFn = function() { self._moved = false; self._opening = false; + self._preventOpen = false; }; this.panel.addEventListener('touchcancel', this._onTouchCancelFn); @@ -282,6 +285,7 @@ Slideout.prototype._initTouchEvents = function() { self.emit('translateend'); (self._opening && Math.abs(self._currentOffsetX) > self._tolerance) ? self.open() : self.close(); } + self._preventOpen = false; self._moved = false; }; @@ -302,6 +306,7 @@ Slideout.prototype._initTouchEvents = function() { } var dif_x = eve.touches[0].clientX - self._startOffsetX; + var dif_y = eve.touches[0].clientY - self._startOffsetY; var translateX = self._currentOffsetX = dif_x; @@ -334,6 +339,9 @@ Slideout.prototype._initTouchEvents = function() { self._translateXTo(translateX); self.emit('translate', translateX); self._moved = true; + } else if (Math.abs(dif_y) > 40 && !self._opening) { + self._preventOpen = true; + return; } };