Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wrong hover and click events position when selecting on/after scrolling #3592

Closed
dscheg opened this issue Jan 11, 2024 · 1 comment
Closed
Assignees
Labels

Comments

@dscheg
Copy link

dscheg commented Jan 11, 2024

Description

Looks like scrolling is not taken into account when calculating hover and click position, so the wrong element is selected after scroll. Positioning fixes only after moving the cursor outside the drawing area.

Also, if you uncomment flushing the chart on scrolling, the deselected points on the spline are not repainted, whilst multiple selection is turned off.

image

Steps to check or reproduce

<link href="https://cdnjs.cloudflare.com/ajax/libs/billboard.js/3.10.3/billboard.min.css" rel="stylesheet" type="text/css"/>

<div id="chart"></div>

<script src="https://d3js.org/d3.v7.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/billboard.js/3.10.3/billboard.min.js"></script>
path.bb-bar._selected_ { fill:blue !important; }
const chart = bb.generate({
    bindto: "#chart",
    transition: {duration: 500},
    axis: {rotated: true},
    bar: {width: 30},
    size: {height: 1000},
    data: {
        zoom: {enabled: false},
        selection: {enabled: true, grouped: true, multiple: false, draggable: false},
        columns: [
            ["data1", 30, 200, 100, 170, 150, 250, 231, 238, 348, 685, 12, 123, 343, 455, 839, 123, 22, 3, 99, 818, 284, 89, 928, 98, 28, 823],
            ["data2", 30, 200, 100, 170, 150, 250, 231, 238, 348, 685, 12, 123, 343, 455, 839, 123, 22, 3, 99, 818, 284, 89, 928, 98, 28, 823]
        ],
        types: {
          data1: "bar",
          data2: "area-spline"
        },
        colors: {
          data1: "red",
          data2: "green"
        }
    }
});

// addEventListener("scroll", _ => chart.flush());
@netil netil added the bug label Jan 12, 2024
@netil
Copy link
Member

netil commented Jan 12, 2024

@dscheg thanks for the report.

Also, if you uncomment flushing the chart on scrolling, the deselected points on the spline are not repainted, whilst multiple selection is turned off.

When you call .flush() at the time of previous task is done, will cause unexpected result.

@netil netil self-assigned this Jan 12, 2024
netil pushed a commit to netil/billboard.js that referenced this issue Jan 15, 2024
Reflect current scroll position(body and container scroll also)
for correct data selection on tooltip show

Ref naver#3592
@netil netil closed this as completed in 8f80637 Jan 15, 2024
github-actions bot pushed a commit that referenced this issue Jan 19, 2024
# [3.11.0-next.1](3.10.3...3.11.0-next.1) (2024-01-19)

### Bug Fixes

* **api:** Fix to return indexed categories ([55c17c6](55c17c6)), closes [#3365](#3365)
* **Axis:** Correct x axis height calculation for autorotated x axis tick texts ([d5b5d09](d5b5d09)), closes [#3584](#3584) [#3585](#3585)
* **axis:** Fixed x axis tick texts rotation when legend is positioned right ([ed4703e](ed4703e)), closes [#3570](#3570) [#3571](#3571)
* **bar:** Fix stacking bar position on multiple xs ([216da62](216da62)), closes [#3372](#3372)
* **candlestick:** Fix rendering on rotated axis ([17f5058](17f5058)), closes [#3387](#3387)
* **clip:** Fix x axis hide on title.bottom ([beec1bb](beec1bb)), closes [#3364](#3364)
* **option:** Fix inconsistency of padding ([0c1ce81](0c1ce81)), closes [#3426](#3426)
* **packages:** Fix build error with moduleResolution:bundler ([9c17eea](9c17eea)), closes [#3541](#3541)
* **radar:** Fix axes texts exclusion on resize ([3a814a5](3a814a5)), closes [#3126](#3126)
* **shape:** Fix circleY() undefined error ([f4ac3f1](f4ac3f1)), closes [#3388](#3388)
* **subchart, zoom:** Fix returning domain value ([90338ec](90338ec)), closes [#3347](#3347)
* **subchart:** Fix handlebar position ([b897cbb](b897cbb)), closes [#3358](#3358)
* **title:** fix title text center align ([b254a61](b254a61)), closes [#3363](#3363)
* **tooltip:** Fix tooltip position from interference ([9d28cbb](9d28cbb)), closes [#3575](#3575)
* **tooltip:** Fix tooltip.format.value call ([f7d587d](f7d587d)), closes [#3371](#3371)
* **tooltip:** Fix tootip display on tooltip.init ([98e6f8b](98e6f8b)), closes [#3369](#3369)
* **tooltip:** Fix wrong tooltip selection on browser scroll change ([#3593](#3593)) ([8f80637](8f80637)), closes [#3592](#3592)
* **zoom:** Fix zoom state on data load ([967207b](967207b)), closes [#3422](#3422)

### Features

* **api:** Intent to ship subchart method ([976f04a](976f04a)), closes [#3342](#3342)
* **axis:** Add x.tick.text.inner option ([cfc856c](cfc856c)), closes [#3552](#3552)
* **legend:** Itent to ship legend.format, legend.tooltip ([aecff2f](aecff2f)), closes [#3533](#3533)
* **module:** Support dual CJS/ESM package ([437c007](437c007)), closes [#2202](#2202)
* **plugin:** Intent to ship TableView plugin ([215b611](215b611)), closes [#1873](#1873)
* **regions:** Intent to ship regions.label ([b4e3bc2](b4e3bc2)), closes [#3319](#3319)
github-actions bot pushed a commit that referenced this issue Feb 15, 2024
# [3.11.0](3.10.3...3.11.0) (2024-02-15)

### Bug Fixes

* **Axis:** Correct x axis height calculation for autorotated x axis tick texts ([d5b5d09](d5b5d09)), closes [#3584](#3584) [#3585](#3585)
* **axis:** Fix x Axis tick height calculation ([ac26f11](ac26f11)), closes [#3643](#3643)
* **axis:** Fixed x axis tick texts rotation when legend is positioned right ([ed4703e](ed4703e)), closes [#3570](#3570) [#3571](#3571)
* **packages:** Fix build error with moduleResolution:bundler ([9c17eea](9c17eea)), closes [#3541](#3541)
* **radar:** Fix axes texts exclusion on resize ([3a814a5](3a814a5)), closes [#3126](#3126)
* **regions:** Fix applying regions class ([7e4fa71](7e4fa71)), closes [#3611](#3611)
* **tooltip:** Fix tooltip position from interference ([9d28cbb](9d28cbb)), closes [#3575](#3575)
* **tooltip:** Fix wrong tooltip selection on browser scroll change ([#3593](#3593)) ([8f80637](8f80637)), closes [#3592](#3592)
* **zoom:** Fix zoom state on data load ([967207b](967207b)), closes [#3422](#3422)

### Features

* **arc:** Intent to ship arc.rangeText ([e887baf](e887baf)), closes [#2120](#2120)
* **axis:** Add x.tick.text.inner option ([cfc856c](cfc856c)), closes [#3552](#3552)
* **gauge:** Intent to ship gauge.enforceMinMax ([c277201](c277201)), closes [#2125](#2125)
* **gauge:** Intent to ship gauge.label.ratio ([d4e49ba](d4e49ba)), closes [#3633](#3633)
* **legend:** Itent to ship legend.format, legend.tooltip ([aecff2f](aecff2f)), closes [#3533](#3533)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants