@@ -1560,7 +1560,8 @@ function hoverAvoidOverlaps(hoverLabels, rotateLabels, fullLayout, commonLabel)
1560
1560
var labelMin = d . crossPos + ( axIsX ? offsetRectY : offsetRectX ) ;
1561
1561
var labelMax = labelMin + ( axIsX ? d . tx2width * fullLayout . _invScaleX : ( d . by + 2 ) * fullLayout . _invScaleY ) ;
1562
1562
if ( axIsX ) {
1563
- if ( axisLabelMinY !== undefined && axisLabelMaxY !== undefined && Math . max ( labelMin , axisLabelMinY ) <= Math . min ( labelMax , axisLabelMaxY ) ) {
1563
+ // at least 1 pixel overlap
1564
+ if ( axisLabelMinY !== undefined && axisLabelMaxY !== undefined && Math . min ( labelMax , axisLabelMaxY ) - Math . max ( labelMin , axisLabelMinY ) > 1 ) {
1564
1565
// has overlap with axis label
1565
1566
if ( crossAx . side === 'left' ) {
1566
1567
pmin = crossAx . _mainLinePosition ;
@@ -1570,7 +1571,8 @@ function hoverAvoidOverlaps(hoverLabels, rotateLabels, fullLayout, commonLabel)
1570
1571
}
1571
1572
}
1572
1573
} else {
1573
- if ( axisLabelMinX !== undefined && axisLabelMaxX !== undefined && Math . max ( labelMin , axisLabelMinX ) <= Math . min ( labelMax , axisLabelMaxX ) ) {
1574
+ // at least 1 pixel overlap
1575
+ if ( axisLabelMinX !== undefined && axisLabelMaxX !== undefined && Math . min ( labelMax , axisLabelMaxX ) - Math . max ( labelMin , axisLabelMinX ) > 1 ) {
1574
1576
// has overlap with axis label
1575
1577
if ( crossAx . side === 'top' ) {
1576
1578
pmin = crossAx . _mainLinePosition ;
@@ -1782,25 +1784,27 @@ function alignHoverText(hoverLabels, rotateLabels, scaleX, scaleY) {
1782
1784
var horzSign = anchor === 'end' ? - 1 : 1 ;
1783
1785
var shiftX = getLabelShiftX ( d ) ;
1784
1786
var offsets = getHoverLabelOffsets ( d , rotateLabels ) ;
1787
+ var offsetX = offsets . x ;
1788
+ var offsetY = offsets . y ;
1785
1789
1786
1790
var isMiddle = anchor === 'middle' ;
1787
1791
1788
1792
g . select ( 'path' )
1789
1793
. attr ( 'd' , isMiddle ?
1790
1794
// middle aligned: rect centered on data
1791
- ( 'M-' + pX ( d . bx / 2 + d . tx2width / 2 ) + ',' + pY ( offsets . y - d . by / 2 ) +
1795
+ ( 'M-' + pX ( d . bx / 2 + d . tx2width / 2 ) + ',' + pY ( offsetY - d . by / 2 ) +
1792
1796
'h' + pX ( d . bx ) + 'v' + pY ( d . by ) + 'h-' + pX ( d . bx ) + 'Z' ) :
1793
1797
// left or right aligned: side rect with arrow to data
1794
- ( 'M0,0L' + pX ( horzSign * HOVERARROWSIZE + offsets . x ) + ',' + pY ( HOVERARROWSIZE + offsets . y ) +
1798
+ ( 'M0,0L' + pX ( horzSign * HOVERARROWSIZE + offsetX ) + ',' + pY ( HOVERARROWSIZE + offsetY ) +
1795
1799
'v' + pY ( d . by / 2 - HOVERARROWSIZE ) +
1796
1800
'h' + pX ( horzSign * d . bx ) +
1797
1801
'v-' + pY ( d . by ) +
1798
- 'H' + pX ( horzSign * HOVERARROWSIZE + offsets . x ) +
1799
- 'V' + pY ( offsets . y - HOVERARROWSIZE ) +
1802
+ 'H' + pX ( horzSign * HOVERARROWSIZE + offsetX ) +
1803
+ 'V' + pY ( offsetY - HOVERARROWSIZE ) +
1800
1804
'Z' ) ) ;
1801
1805
1802
- var posX = offsets . x + shiftX . xx ;
1803
- var posY = offsets . y + d . ty0 - d . by / 2 + HOVERTEXTPAD ;
1806
+ var posX = offsetX + shiftX . xx ;
1807
+ var posY = offsetY + d . ty0 - d . by / 2 + HOVERTEXTPAD ;
1804
1808
var textAlign = d . textAlign || 'auto' ;
1805
1809
1806
1810
if ( textAlign !== 'auto' ) {
@@ -1822,12 +1826,12 @@ function alignHoverText(hoverLabels, rotateLabels, scaleX, scaleY) {
1822
1826
if ( d . tx2width ) {
1823
1827
g . select ( 'text.name' )
1824
1828
. call ( svgTextUtils . positionText ,
1825
- pX ( shiftX . x2x + shiftX . alignShift * HOVERTEXTPAD + offsets . x ) ,
1826
- pY ( offsets . y + d . ty0 - d . by / 2 + HOVERTEXTPAD ) ) ;
1829
+ pX ( shiftX . x2x + shiftX . alignShift * HOVERTEXTPAD + offsetX ) ,
1830
+ pY ( offsetY + d . ty0 - d . by / 2 + HOVERTEXTPAD ) ) ;
1827
1831
g . select ( 'rect' )
1828
1832
. call ( Drawing . setRect ,
1829
- pX ( shiftX . x2x + ( shiftX . alignShift - 1 ) * d . tx2width / 2 + offsets . x ) ,
1830
- pY ( offsets . y - d . by / 2 - 1 ) ,
1833
+ pX ( shiftX . x2x + ( shiftX . alignShift - 1 ) * d . tx2width / 2 + offsetX ) ,
1834
+ pY ( offsetY - d . by / 2 - 1 ) ,
1831
1835
pX ( d . tx2width ) , pY ( d . by + 2 ) ) ;
1832
1836
}
1833
1837
} ) ;
0 commit comments