Skip to content

Commit b681538

Browse files
committed
Do not break if mouse moves to x=0 when using rangeslider
1 parent 19322e9 commit b681538

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/components/rangeslider/draw.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,16 @@ module.exports = function(gd) {
224224
});
225225
};
226226

227+
function eventX(event) {
228+
if (typeof event.clientX === 'number') {
229+
return event.clientX;
230+
}
231+
if (event.touches && event.touches.length > 0) {
232+
return event.touches[0].clientX;
233+
}
234+
return 0;
235+
}
236+
227237
function setupDragElement(rangeSlider, gd, axisOpts, opts) {
228238
if(gd._context.staticPlot) return;
229239

@@ -234,7 +244,7 @@ function setupDragElement(rangeSlider, gd, axisOpts, opts) {
234244
function mouseDownHandler() {
235245
var event = d3.event;
236246
var target = event.target;
237-
var startX = event.clientX || event.touches[0].clientX;
247+
var startX = eventX(event);
238248
var offsetX = startX - rangeSlider.node().getBoundingClientRect().left;
239249
var minVal = opts.d2p(axisOpts._rl[0]);
240250
var maxVal = opts.d2p(axisOpts._rl[1]);
@@ -247,7 +257,7 @@ function setupDragElement(rangeSlider, gd, axisOpts, opts) {
247257
dragCover.addEventListener('mouseup', mouseUp);
248258

249259
function mouseMove(e) {
250-
var clientX = e.clientX || e.touches[0].clientX;
260+
var clientX = eventX(e);
251261
var delta = +clientX - startX;
252262
var pixelMin, pixelMax, cursor;
253263

0 commit comments

Comments
 (0)