go.talks/present: disable mouse wheel scrolling.
R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/30850044
diff --git a/present/static/slides.js b/present/static/slides.js
index 0c31bd3..489fb6b 100644
--- a/present/static/slides.js
+++ b/present/static/slides.js
@@ -11,7 +11,7 @@
var curSlide;
/* ---------------------------------------------------------------------- */
-/* classList polyfill by Eli Grey
+/* classList polyfill by Eli Grey
* (http://purl.eligrey.com/github/classList.js/blob/master/classList.js) */
if (typeof document !== "undefined" && !("classList" in document.createElement("a"))) {
@@ -135,7 +135,7 @@
/* Slide movement */
function getSlideEl(no) {
- if ((no < 0) || (no >= slideEls.length)) {
+ if ((no < 0) || (no >= slideEls.length)) {
return null;
} else {
return slideEls[no];
@@ -144,15 +144,15 @@
function updateSlideClass(slideNo, className) {
var el = getSlideEl(slideNo);
-
+
if (!el) {
return;
}
-
+
if (className) {
el.classList.add(className);
}
-
+
for (var i in SLIDE_CLASSES) {
if (className != SLIDE_CLASSES[i]) {
el.classList.remove(SLIDE_CLASSES[i]);
@@ -169,14 +169,14 @@
case curSlide - 1:
updateSlideClass(i, 'past');
break;
- case curSlide:
+ case curSlide:
updateSlideClass(i, 'current');
break;
case curSlide + 1:
- updateSlideClass(i, 'next');
+ updateSlideClass(i, 'next');
break;
case curSlide + 2:
- updateSlideClass(i, 'far-next');
+ updateSlideClass(i, 'far-next');
break;
default:
updateSlideClass(i);
@@ -194,7 +194,7 @@
enableSlideFrames(curSlide - 1);
enableSlideFrames(curSlide + 2);
-
+
updateHash();
};
@@ -248,7 +248,7 @@
var evt = document.createEvent('Event');
evt.initEvent('slideleave', true, true);
evt.slideNumber = no + 1; // Make it readable
-
+
el.dispatchEvent(evt);
};
@@ -288,35 +288,15 @@
nextSlide();
}
}
-
+
cancelTouch();
};
function cancelTouch() {
document.body.removeEventListener('touchmove', handleTouchMove, true);
- document.body.removeEventListener('touchend', handleTouchEnd, true);
+ document.body.removeEventListener('touchend', handleTouchEnd, true);
};
-/* Mouse wheel events */
-
-// Used to limit the number of slides advanced.
-var tooSoon = false;
-
-function handleMouseWheel(event) {
- event.preventDefault();
- if (tooSoon) return;
-
- // FireFox exposes delta in detail, instead of wheelDelta.
- var delta = event.wheelDelta ? event.wheelDelta : -event.detail;
- // Scrolling down or left means next.
- if (delta > 0) nextSlide();
- // Scrolling up or right means previous.
- if (delta < 0) prevSlide();
-
- tooSoon = true;
- setTimeout(function() { tooSoon = false;}, 250);
-}
-
/* Preloading frames */
function disableSlideFrames(no) {
@@ -361,36 +341,30 @@
frame._src = frame.src;
disableFrame(frame);
}
-
+
enableSlideFrames(curSlide);
enableSlideFrames(curSlide + 1);
- enableSlideFrames(curSlide + 2);
+ enableSlideFrames(curSlide + 2);
};
function setupInteraction() {
/* Clicking and tapping */
-
+
var el = document.createElement('div');
el.className = 'slide-area';
- el.id = 'prev-slide-area';
+ el.id = 'prev-slide-area';
el.addEventListener('click', prevSlide, false);
document.querySelector('section.slides').appendChild(el);
var el = document.createElement('div');
el.className = 'slide-area';
- el.id = 'next-slide-area';
+ el.id = 'next-slide-area';
el.addEventListener('click', nextSlide, false);
- document.querySelector('section.slides').appendChild(el);
-
+ document.querySelector('section.slides').appendChild(el);
+
/* Swiping */
-
+
document.body.addEventListener('touchstart', handleTouchStart, false);
-
- /* Scrolling */
-
- document.body.addEventListener('mousewheel', handleMouseWheel, false);
- // Needed for FireFox (Gecko)
- document.body.addEventListener('DOMMouseScroll', handleMouseWheel, false);
}
/* Hash functions */
@@ -448,7 +422,7 @@
};
function addEventListeners() {
- document.addEventListener('keydown', handleBodyKeyDown, false);
+ document.addEventListener('keydown', handleBodyKeyDown, false);
};
/* Initialization */
@@ -469,12 +443,12 @@
el.type = 'text/css';
el.href = PERMANENT_URL_PREFIX + 'styles.css';
document.body.appendChild(el);
-
+
var el = document.createElement('meta');
el.name = 'viewport';
el.content = 'width=1100,height=750';
document.querySelector('head').appendChild(el);
-
+
var el = document.createElement('meta');
el.name = 'apple-mobile-web-app-capable';
el.content = 'yes';