From 85df20d73665ac519bb752ba66cb302f438ef92b Mon Sep 17 00:00:00 2001 From: Gary Katsevman Date: Tue, 12 Mar 2013 11:40:40 -0400 Subject: [PATCH] Fix slider for android --- src/js/controls.js | 9 +++++++-- src/js/events.js | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/js/controls.js b/src/js/controls.js index 5042941bf..bc9b3e118 100644 --- a/src/js/controls.js +++ b/src/js/controls.js @@ -612,7 +612,8 @@ vjs.Slider.prototype.calculateDistance = function(event){ var box = this.el_, boxX = vjs.findPosX(box), boxW = box.offsetWidth, - handle = this.handle; + handle = this.handle, + pageX = event.pageX; if (handle) { var handleW = handle.el().offsetWidth; @@ -622,8 +623,12 @@ vjs.Slider.prototype.calculateDistance = function(event){ boxW = boxW - handleW; } + if (pageX === 0 && event.changedTouches) { + pageX = event.changedTouches[0].pageX; + } + // Percent that the click is through the adjusted area - return Math.max(0, Math.min(1, (event.pageX - boxX) / boxW)); + return Math.max(0, Math.min(1, (pageX - boxX) / boxW)); }; vjs.Slider.prototype.onFocus = function(){ diff --git a/src/js/events.js b/src/js/events.js index 14ad238a6..48352e689 100644 --- a/src/js/events.js +++ b/src/js/events.js @@ -172,6 +172,11 @@ vjs.fixEvent = function(event) { event[prop] = old[prop]; } + if (event.changedTouches && event.pageX === 0 && event.pageY === 0) { + event.pageX = event.changedTouches[0].pageX; + event.pageY = event.changedTouches[0].pageY; + } + // The event occurred on this element if (!event.target) { event.target = event.srcElement || document;