Skip to content

Instantly share code, notes, and snippets.

@Dzinlife
Created October 7, 2013 07:29
Show Gist options
  • Save Dzinlife/6863828 to your computer and use it in GitHub Desktop.
Save Dzinlife/6863828 to your computer and use it in GitHub Desktop.
function preventMacBackFwdGesture(element, scrollable) {
if (scrollable === undefined) {
var scrollable = true;
};
$(element).each(function () {
var $this = $(this);
var scrollDirection;
$this.mousewheel(function(event, delta, deltaX, deltaY) {
if (Math.abs(deltaX) < Math.abs(deltaY)) {
scrollDirection = "vertical";
}else if (deltaX > 0) {
scrollDirection = "right";
}else if (deltaX < 0) {
scrollDirection = "left";
};
});
function scrollLeftMax(element) {
return element[0].scrollWidth - element[0].clientWidth;
}
var _method = {};
_method.scrollable = function () {
$this.on('mousewheel', function(e){
if (scrollDirection === "vertical"){
return;
}else {
if ($this.scrollLeft() === 0) {
if (scrollDirection === "right") {
return;
}else {
e.preventDefault();
};
};
if ($this.scrollLeft() === scrollLeftMax($this) ) {
if (scrollDirection === "left") {
return;
}else {
e.preventDefault();
};
};
}
});
}
_method.unscrollable = function () {
$this.on("mousewheel", function (e) {
if (scrollDirection !== "vertical") {
e.preventDefault();
};
});
}
if (scrollable) {
_method.scrollable();
}else {
_method.unscrollable();
}
})
}
// usage
preventMacBackFwdGesture($('#scroller-0-inner, #scroller-1-inner'));
preventMacBackFwdGesture($('#dock-wrapper'),false);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment