in ArticleTemplates/assets/js/modules/mobile-range-slider.js [218:245]
MobileRangeSlider.prototype.handle = function(event){
event.preventDefault();
if (event.targetTouches){ event = event.targetTouches[0]; }
var position = event.pageX,
element,
knobWidth = this.knob.offsetWidth,
trackWidth = this.track.offsetWidth,
width = trackWidth - knobWidth,
range = this.options.max - this.options.min,
value;
for (element = this.element; element; element = element.offsetParent){
position -= element.offsetLeft;
}
// keep knob in the bounds
position += knobWidth / 2;
position = Math.min(position, trackWidth);
position = Math.max(position - knobWidth, 0);
this.setKnobPosition(position);
this.setTrackPosition(position);
// update
value = this.options.min + Math.round(position * range / width);
this.setValue(value);
};