Billboard.js: Since Chrome 73, graphs are having glitchy blurry initial render issues

Created on 25 Apr 2019  Β·  3Comments  Β·  Source: naver/billboard.js

Description

Ever since Chrome 73, and reproducible on current Chrome 74, billboard.js rendered bar charts have weird blur issues on first render, but it fixes itself after moving mouse on the chart to focus on it(issue doesn't persist after focusing out).
As far as I can tell, it's a library/chrome compatibility issue that was introduced since Chrome 73, and not an issue with user implementation.

//--------------------//

μ•ˆλ…•ν•˜μ„Έμš”, 라이브러리 잘 μ“°κ³  μžˆμŠ΅λ‹ˆλ‹€. 닀름이 μ•„λ‹ˆλΌ, 크둬 73λΆ€ν„° 첫 λ Œλ”λ§μ‹œ μ°¨νŠΈκ°€ λΏŒμ˜‡κ²Œ λ³΄μ΄λŠ” ν˜„μƒμ΄ 생기고 μžˆμŠ΅λ‹ˆλ‹€. 개인 ν”„λ‘œμ νŠΈ 뿐만 μ•„λ‹ˆλΌ ν”„λ‘œμ νŠΈ λŒ€λ¬Έμ—μ„œλ„ (μ‘°κΈˆμ΄λ‚˜λ§ˆ) 눈치챌 수 μžˆλŠ” μ΄μƒν˜„μƒμ΄ μžˆλŠ”λ§ŒνΌ, μ‚¬μš©μƒμ˜ μ‹€μˆ˜μ— μ˜ν•œ 것이 μ•„λ‹ˆλΌ 라이브러리 코어와 ν¬λ‘¬κ°„μ˜ μ΄μŠˆμΈλ“―ν•©λ‹ˆλ‹€.

마우슀λ₯Ό μ˜¬λ €μ„œ 포컀싱해보면 ν•΄λ‹Ή ν˜„μƒμ€ μž„μ‹œλ‘œ 사라지고, μ΄λŠ” 포컀슀 아웃해도 μ—¬μ „νžˆ 고쳐진 μƒνƒœλ‘œ λ‚¨μŠ΅λ‹ˆλ‹€.
λ¬Όλ‘ , νŽ˜μ΄μ§€ μƒˆλ‘œκ³ μΉ¨ ν˜Ήμ€ μ–΄λ–€ νŠΈλ¦¬κ±°μ— μ˜ν•΄ κ·Έλž˜ν”„ λ Œλ”λ§μ„ λ‹€μ‹œ μˆ˜ν–‰ν•  경우 λΏŒμ—° ν˜„μƒμ€ λ‹€μ‹œ λ°œμƒν•©λ‹ˆλ‹€.

κ°μ‚¬ν•©λ‹ˆλ‹€.

Steps to check or reproduce

  • Billboard.js mainpage: initial render
    image
  • Billboard.js mainpage: after mouse focus in & out
    image
  • personal project utilizing billboard.js(also tested with newest 1.8.0 release): initial render
    image
  • personal project utilizing billboard.js(also tested with newest 1.8.0 release): after mouse focus in & out
    image

Notes

  • tested only on Windows 10 64bit Professional / Chrome 73 & 74
known-issue need-investigate

Most helpful comment

@netil Thank you for the quick fix. It appears to be working normally after setting it to auto.

All 3 comments

Hi @gyuhyeon, thanks for the report, I'll be digging the cause.

I did some test on this and I figured out some issue on shape-rendering css property.
I'm not really sure about the issue, but IMO there's rendering issue on chrome handling this.

The default css file styles <path> elements(and some others) with shape-rendering: crispEdges.

.bb-legend-item-tile,
.bb-xgrid-focus,
.bb-ygrid,
.bb-event-rect,
.bb-bars path {
  shape-rendering: crispEdges;
}

shape-rendering: crispEdges

As you mentioned, it has some rendering issue after the generation, adding blurry border.
shape-rendering

shape-rendering: auto

If you set auto (or simply remove the setting, because the default is 'auto'), there's no flickering at the border of the shape.
shape-rendering-2

@gyuhyeon, can you try with the shape-rendering: auto;?
And let me know how this worked.

Thanks in advance.

@netil Thank you for the quick fix. It appears to be working normally after setting it to auto.

Was this page helpful?
0 / 5 - 0 ratings