1
0
mirror of https://github.com/videojs/video.js.git synced 2024-12-16 11:37:29 +02:00

Merge pull request #457 from gkatsev/fix/calculateDistance

Fix calculateDistance on slider to work in iframes and all devices.
This commit is contained in:
Steve Heffernan 2013-04-22 11:26:51 -07:00
commit f81b369955
2 changed files with 26 additions and 4 deletions

View File

@ -135,9 +135,7 @@ vjs.Slider.prototype.calculateDistance = function(event){
boxW = boxW - handleW; boxW = boxW - handleW;
} }
// This is done because on Android, event.pageX is always 0 and the actual if (event.changedTouches) {
// values live under the changedTouches array.
if (pageX === 0 && event.changedTouches) {
pageX = event.changedTouches[0].pageX; pageX = event.changedTouches[0].pageX;
} }

24
test/unit/controls.js vendored
View File

@ -75,3 +75,27 @@ test('should test and toggle volume control on `loadstart`', function(){
ok(muteToggle.el().className.indexOf('vjs-hidden') < 0, ok(muteToggle.el().className.indexOf('vjs-hidden') < 0,
'muteToggle does not show itself'); 'muteToggle does not show itself');
}); });
test('calculateDistance should use changedTouches, if available', function() {
var noop, player, slider, event;
noop = function(){};
player = {
id: noop,
on: noop,
ready: noop
};
slider = new vjs.Slider(player);
document.body.appendChild(slider.el_);
slider.el_.style.position = 'absolute';
slider.el_.style.width = '200px';
slider.el_.style.left = '0px';
event = {
pageX: 10,
changedTouches: [{
pageX: 100
}]
};
equal(slider.calculateDistance(event), 0.5, 'we should have touched exactly in the center, so, the ratio should be half');
});