Skip to content

Commit 64d8196

Browse files
committed
rm grab area offsets
- use handle width to determine correct handle position
1 parent 35a4341 commit 64d8196

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

src/components/rangeslider/constants.js

-2
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@ module.exports = {
4141
grabAreaFill: 'transparent',
4242
grabAreaCursor: 'col-resize',
4343
grabAreaWidth: 10,
44-
grabAreaMinOffset: -6,
45-
grabAreaMaxOffset: -2,
4644

4745
handleWidth: 2,
4846
handleRadius: 1,

src/components/rangeslider/draw.js

+13-10
Original file line numberDiff line numberDiff line change
@@ -252,11 +252,16 @@ function setDataRange(rangeSlider, gd, axisOpts, opts) {
252252
}
253253

254254
function setPixelRange(rangeSlider, gd, axisOpts, opts) {
255+
var hw2 = constants.handleWidth / 2;
255256

256257
function clamp(v) {
257258
return Lib.constrain(v, 0, opts._width);
258259
}
259260

261+
function clampHandle(v) {
262+
return Lib.constrain(v, -hw2, opts._width + hw2);
263+
}
264+
260265
var pixelMin = clamp(opts.d2p(axisOpts._rl[0])),
261266
pixelMax = clamp(opts.d2p(axisOpts._rl[1]));
262267

@@ -271,11 +276,14 @@ function setPixelRange(rangeSlider, gd, axisOpts, opts) {
271276
.attr('x', pixelMax)
272277
.attr('width', opts._width - pixelMax);
273278

279+
var xMin = clampHandle(pixelMin - hw2),
280+
xMax = clampHandle(pixelMax - hw2);
281+
274282
rangeSlider.select('g.' + constants.grabberMinClassName)
275-
.attr('transform', 'translate(' + (pixelMin - constants.handleWidth - 1) + ',0)');
283+
.attr('transform', 'translate(' + xMin + ',0)');
276284

277285
rangeSlider.select('g.' + constants.grabberMaxClassName)
278-
.attr('transform', 'translate(' + pixelMax + ',0)');
286+
.attr('transform', 'translate(' + xMax + ',0)');
279287
}
280288

281289
function drawBg(rangeSlider, gd, axisOpts, opts) {
@@ -505,6 +513,7 @@ function drawGrabbers(rangeSlider, gd, axisOpts, opts) {
505513

506514
var grabAreaFixAttrs = {
507515
width: constants.grabAreaWidth,
516+
x: 0,
508517
y: 0,
509518
fill: constants.grabAreaFill,
510519
cursor: constants.grabAreaCursor
@@ -515,20 +524,14 @@ function drawGrabbers(rangeSlider, gd, axisOpts, opts) {
515524
grabAreaMin.enter().append('rect')
516525
.classed(constants.grabAreaMinClassName, true)
517526
.attr(grabAreaFixAttrs);
518-
grabAreaMin.attr({
519-
x: constants.grabAreaMinOffset,
520-
height: opts._height
521-
});
527+
grabAreaMin.attr('height', opts._height);
522528

523529
var grabAreaMax = grabberMax.selectAll('rect.' + constants.grabAreaMaxClassName)
524530
.data([0]);
525531
grabAreaMax.enter().append('rect')
526532
.classed(constants.grabAreaMaxClassName, true)
527533
.attr(grabAreaFixAttrs);
528-
grabAreaMax.attr({
529-
x: constants.grabAreaMaxOffset,
530-
height: opts._height
531-
});
534+
grabAreaMax.attr('height', opts._height);
532535
}
533536

534537
function clearPushMargins(gd) {

0 commit comments

Comments
 (0)