Для сенсорного дисплея необходимо использовать события: touchstart, touchmove, touchend. А также я использовал экспериментальный параметр e.offsetX, который не возвращается для сенсорных событий. Чтобы прослушать несколько событий, используйте .on из jQuery. Вот окончательный код:
var paused;
var shiftX = progressBar.getBoundingClientRect().left;
$('.progress-bar').on('mousedown touchstart', function(e) {
paused = video.paused;
if (!paused) video.pause();
scrubbing(e);
$(document).on('mousemove touchmove', scrubbing);
$(document).on('mouseup touchend', function() {
$(document).off('mousemove touchmove');
$(document).off('mouseup touchend');
if (!paused) video.play();
});
});
function scrubbing(e) {
video.currentTime = ((e.pageX - shiftX) / progressBar.offsetWidth) * video.duration;
}
CodePen