Highcharts: μ›ν˜• 차트 - 전체 ν™”λ©΄ λͺ¨λ“œλ₯Ό μ’…λ£Œν•œ ν›„ μ°¨νŠΈμ— μ›λž˜ 크기가 ν‘œμ‹œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2020λ…„ 03μ›” 30일  Β·  39μ½”λ©˜νŠΈ  Β·  좜처: highcharts/highcharts

μ‹€μ œ 행동

μ›ν˜• 차트의 초기 데λͺ¨ 버전은 주어진 크기둜 ν‘œμ‹œλ©λ‹ˆλ‹€.

"전체 ν™”λ©΄ 보기" / "전체 ν™”λ©΄ μ’…λ£Œ"λ₯Ό μ‹€ν–‰ν•œ ν›„ 차트 크기가 변경됨(μΆ•μ†Œ λ˜λŠ” 증가)에 μœ μ˜ν•˜μ‹­μ‹œμ˜€.

λ¬Έμ œλŠ” 곡식 Highcharts 데λͺ¨μ—μ„œ λ°œμƒν•©λ‹ˆλ‹€.

https://www.highcharts.com/demo/pie-basic

λ˜ν•œ λ‹¨μˆœν™”λœ μ½”λ“œκ°€ μžˆλŠ” νŽΈμ§‘κΈ°μ—μ„œ:

https://jsfiddle.net/BlackLabel/weo19uvy/

μ œν’ˆ 버전

ν•˜μ΄μ°¨νŠΈ v8.0.4

영ν–₯을 λ°›λŠ” λΈŒλΌμš°μ €

크둬 80.0.3987.149

Highcharts Undecided

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ•ˆλ…•! μžμ„Ένžˆ μ‚΄νŽ΄λ³΄κ³  λ©°μΉ  λ‚΄λ‘œ μƒνƒœλ₯Ό μ•Œλ € λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

λͺ¨λ“  39 λŒ“κΈ€

참고 둜 @raf18seb

@madepiet을 μ‹ κ³ ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.
이것은 μ•Œλ €μ§„ λ¬Έμ œμž…λ‹ˆλ‹€. 전체 화면을 μ’…λ£Œν•œ ν›„ 일뢀 λΈŒλΌμš°μ €λŠ” μ›λž˜ 높이(전체 화면을 ν˜ΈμΆœν•˜κΈ° μ „μ˜ 높이)λ₯Ό λ³΅μ›ν•˜μ§€λ§Œ λ‹€λ₯Έ λΈŒλΌμš°μ €λŠ” 그렇지 μ•ŠμŠ΅λ‹ˆλ‹€.

ν•΄κ²° 방법:
μ»¨ν…Œμ΄λ„ˆμ˜ 높이λ₯Ό μ—„κ²©ν•˜κ²Œ μ •μ˜ν•  수 μžˆμ§€λ§Œ( μ—…λ°μ΄νŠΈλœ 데λͺ¨ μ°Έμ‘° ) 일뢀 λΈŒλΌμš°μ €(예: IE11)λŠ” 전체 ν™”λ©΄ λͺ¨λ“œμ˜ 100% λ†’μ΄μ—μ„œ μ»¨ν…Œμ΄λ„ˆλ₯Ό ν‘œμ‹œν•˜μ§€ μ•Šκ³  μ •μ˜λœ λ†’μ΄λ‘œλ§Œ ν‘œμ‹œν•©λ‹ˆλ‹€(μ‹€μ œλ‘œ 전체 화면이 μ•„λ‹˜). .

μ›λž˜ 높이λ₯Ό κΈ°μ–΅ν•˜κ³  전체 화면을 μ’…λ£Œν•œ ν›„ λ³΅μ›ν•˜λŠ” 논리λ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. @sebastianbochan μ–΄λ–»κ²Œ μƒκ°ν•˜μ„Έμš”?

ν•΄κ²° λ°©λ²•μœΌλ‘œ CSS μŠ€νƒ€μΌμ—μ„œ λ„ˆλΉ„/높이λ₯Ό μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. (νΌμ„ΌνŠΈκ°€ μ•„λ‹Œ px κ°’μ—μ„œλ§Œ μž‘λ™ν•©λ‹ˆλ‹€).

데λͺ¨:

@raf18seb 쒋은 생각이고 그것도 그리 λ³΅μž‘ν•œ μ†”λ£¨μ…˜μ€ μ•„λ‹ˆλΌκ³  μƒκ°ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ (전체 ν™”λ©΄ μ’…λ£Œ ν›„) chart.setSize κ°€ μ—¬λŸ¬ 번 ν˜ΈμΆœλ˜μ§€ μ•Šμ•˜λŠ”μ§€ 확인해야 ν•©λ‹ˆλ‹€. μš°λ¦¬λŠ” λ§Žμ€ 재 λ Œλ”λ§μ„ ν”Όν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš”, μš°λ¦¬λŠ” κΊΎμ€μ„ ν˜• 차트 μ‚¬μš©μ—μ„œ 이것을 보고 있으며 μ‹€μ œλ‘œ μ•„λž˜μ˜ 데λͺ¨μ—μ„œ λ°œμƒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
https://www.highcharts.com/demo/line-basic

μ°¨νŠΈλŠ” μ»¨ν…Œμ΄λ„ˆμ—μ„œ 응닡해야 ν•˜λ―€λ‘œ λ„ˆλΉ„/높이λ₯Ό μ •μ μœΌλ‘œ μ„€μ •ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

λΈŒλΌμš°μ € 및 운영 체제
https://www.whatsmybrowser.org/b/D78K2

image
μ»¨ν…Œμ΄λ„ˆμ— κ³ μ • 높이λ₯Ό μ„€μ •ν•œ 후에도 μ—¬μ „νžˆ λ¬Έμ œκ°€ ν•΄κ²°λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ¬Έμ œλŠ” μ»¨ν…Œμ΄λ„ˆ 높이가 μ•„λ‹ˆλΌ SVG 높이가 μˆ˜μ •λ˜μ§€ μ•Šμ€ κ²ƒμž…λ‹ˆλ‹€.

μ²¨λΆ€νŒŒμΌμ„ μ°Έμ‘°ν•˜μ„Έμš”

일뢀 신체가 이에 λŒ€ν•œ μž…λ ₯을 μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

@v-abkhot
μœ„ κ²Œμ‹œλ¬Όμ˜ ν•΄κ²° 방법은 μ–΄λ–»μŠ΅λ‹ˆκΉŒ?

이것은 λ‚˜λ§Œλ³΄κ³  ν•œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€

λ¬Έμ œλŠ” μ»¨ν…Œμ΄λ„ˆ 높이에 κ΄€ν•œ 것이 μ•„λ‹ˆκΈ° λ•Œλ¬Έμ— svg에 κ΄€ν•œ κ²ƒμž…λ‹ˆλ‹€. ν‚€

jsfiddle.net μ—μ„œ μž¬ν˜„ν•œ 라이브 데λͺ¨λ₯Ό κ³΅μœ ν•˜μ„Έμš”.

ν•΄λ‹Ή μ»¨ν…Œμ΄λ„ˆμ— κ³ μ • λ„ˆλΉ„λ₯Ό μΆ”κ°€ν•œ ν›„ μ–΄λ–€ 일이 μΌμ–΄λ‚˜κ³  μžˆλŠ”μ§€μ— λŒ€ν•œ μŠ€ν¬λ¦°μƒ·μ„ 이미 κ³΅μœ ν–ˆμŠ΅λ‹ˆλ‹€.

문제λ₯Ό ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€... svg 높이에 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

μˆ˜μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

κ·Έλž˜μ„œ μ–΄λ–€ 신체가 μ‹€μ œλ‘œ 이것을 쑰사할 수 μžˆμŠ΅λ‹ˆκΉŒ?

μ•ˆλ…•ν•˜μ„Έμš” @v-abkhotλ‹˜,
차트 μ˜΅μ…˜, CSS μŠ€νƒ€μΌ λ“±κ³Ό 같은 정보가 λˆ„λ½λ˜μ–΄ μŠ€ν¬λ¦°μƒ·μ„ 톡해 문제λ₯Ό μž¬ν˜„ν•  수 μ—†μŠ΅λ‹ˆλ‹€. μΆ”κ°€ 디버깅을 μœ„ν•΄ λ‹¨μˆœν™”λœ μ½”λ“œλ‘œ 이 데λͺ¨λ₯Ό μ—…λ°μ΄νŠΈν•˜μ‹­μ‹œμ˜€: https://jsfiddle.net/BlackLabel/0t6necqd/ .

μΆ”μ‹ . λ„ˆλ¬΄ λ§Žμ€ 짧은 λ©”μ‹œμ§€λ₯Ό λ³΄λ‚΄λŠ” λŒ€μ‹  νŽΈμ§‘μ„ μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.

https://codepen.io/v-abkhot/pen/vYNQxQg?editors=1100

이 두 번째 κ·Έλž˜ν”„μ—μ„œ 전체 ν™”λ©΄μœΌλ‘œ μ—΄κ³  μ •μƒμœΌλ‘œ λ‚˜κ°€λ©΄ 크기가 μˆ˜μ •λ©λ‹ˆλ‹€.

image

μ»¨ν…Œμ΄λ„ˆμ— κ³ μ • 높이λ₯Ό μ μš©ν•œ ν›„

image

μœ„ 화면에 SVG둜 μžλ™ μ„€μ •λœ 높이가 μžˆμŒμ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” λ°˜μ‘ 래퍼λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€

μ•ˆλ…•ν•˜μ„Έμš” @v-abkhotλ‹˜,
github λ¬Έμ œκ°€ μ–΄λ–»κ²Œ μž‘λ™ν•˜λŠ”μ§€ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

  1. λ©”μ‹œμ§€μ˜ EDIT λͺ¨λ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ 가독성을 μœ μ§€ν•˜μ‹­μ‹œμ˜€.
  2. 항상 라이브 데λͺ¨λ₯Ό κ³΅μœ ν•˜κ³  λ¬Έμ œκ°€ κΈ°λ³Έ ν•˜μ΄μ°¨νŠΈμ™€ κ΄€λ ¨λœ 경우 Highcharts repo에 λ³΄κ³ ν•˜κ³  λž˜νΌμ™€ 만 κ΄€λ ¨λœ 경우 래퍼의 repo에 λŒ€ν•΄ λ³΄κ³ ν•©λ‹ˆλ‹€.
  3. λ‚΄λΆ€ κ·œμΉ™μ— 따라 24μ‹œκ°„ 닡변을 λ“œλ¦½λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ 더 λ§Žμ€ 정보λ₯Ό 찾을 수 μžˆμŠ΅λ‹ˆλ‹€: http://www.highcharts.com/support
  4. https://github.com/highcharts/highcharts-react/issues/218 λ˜λŠ” https://github.com/highcharts/highcharts/issues/13470 κ³Ό 같은 λ§Žμ€ μ£Όμ œμ™€ λ³΅μ œλ³Έμ„ μƒμ„±ν•˜μ—¬ μŠ€λ ˆλ“œ, λ©”μ‹œμ§€ λ“±μ˜ 양을 λŠ˜λ¦½λ‹ˆλ‹€. κ²°κ³Όλ₯Ό λ””λ²„κΉ…ν•˜κ³  문제λ₯Ό ν•΄κ²°ν•˜λŠ” λŒ€μ‹  μ €μž₯μ†Œλ₯Ό λ‹«κ³  "정리"ν•©λ‹ˆλ‹€. 우리 νŒ€ λͺ¨λ‘μ—κ²Œ μ‹œκ°„μ΄ 많이 κ±Έλ¦½λ‹ˆλ‹€.
  5. μš°λ¦¬μ—κ²ŒλŠ” λ§Žμ€ λ¬Έμ œκ°€ 있으며 각각을 디버그해야 ν•œλ‹€λŠ” 점을 μœ μ˜ν•˜μ‹­μ‹œμ˜€.

@raf18seb μž‘μ—… 쀑인 hichart-reactμ—μ„œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” @v-abkhot, 차트λ₯Ό 디버그할 수 μžˆλ„λ‘ λ‹¨μˆœν™”λœ 온라인 데λͺ¨λ₯Ό μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

당신이 μ œκ³΅ν•œ https://codepen.io/v-abkhot/pen/vYNQxQg?editors=1100 은 2개의 μ°¨νŠΈκ°€ μžˆλŠ” 데λͺ¨μΌ λΏμž…λ‹ˆλ‹€. 첫 번째 μ»¨ν…Œμ΄λ„ˆμ—λŠ” 높이λ₯Ό μ„€μ •ν–ˆμ§€λ§Œ 두 번째 μ»¨ν…Œμ΄λ„ˆμ—λŠ” 높이λ₯Ό μ„€μ •ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. 이것이 ν•΄κ²° 방법이 두 번째 μ°¨νŠΈμ—μ„œ μž‘λ™ν•˜μ§€ μ•ŠλŠ” μ΄μœ μž…λ‹ˆλ‹€.

섀정을 μ‹œλ„ν•˜μ‹­μ‹œμ˜€

#container, #container1 {
  height: 400px;
}

μ•ˆλ…•ν•˜μ„Έμš” @raf18seb μ €λŠ” 높이λ₯Ό μ„€μ •ν•˜λ©΄ 직접 highchart용 μ½”λ“œ νŽœμ— μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. 그러면 μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€λ§Œ μœ„μ˜ μŠ€ν¬λ¦°μƒ· λ¬Έμ œμ—μ„œ svg 높이와 같이 hichart-react-officialsμ—μ„œ μ‚¬μš©ν•˜λ©΄

https://codepen.io/v-abkhot/pen/vYNQxQg?editors=1100

μ•ˆλ…•ν•˜μ„Έμš” @raf18seb hichart-react-officials와 λ™μΌν•˜κ²Œ μ‹œλ„ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?

@v-abkhot 이전 글에 μΆ”κ°€ν•˜κ³  싢은 λ‚΄μš©μ΄ 있으면 μˆ˜μ • λ²„νŠΌμ„ λˆŒλŸ¬μ£Όμ„Έμš”. λ§Žμ€ κ²Œμ‹œλ¬Όμ„ μž‘μ„±ν•˜λ©΄ GitHubκ°€ μ§€μ €λΆ„ν•΄μ§‘λ‹ˆλ‹€.

highcharts-react-official 래퍼둜 ν…ŒμŠ€νŠΈν–ˆλŠ”λ° ν•΄κ²° 방법이 μ œλŒ€λ‘œ μž‘λ™ν•©λ‹ˆλ‹€. containerProps ꡬ성 μš”μ†Œ 속성을 μ‚¬μš©ν•˜μ—¬ 두 차트 ꡬ성 μš”μ†Œμ— μŠ€νƒ€μΌμ„ μ •μ˜ν–ˆμŠ΅λ‹ˆκΉŒ?
λ¬Έμ„œ: https://github.com/highcharts/highcharts-react#options -details

이것은 λ‚˜λ₯Ό μœ„ν•΄ 잘 μž‘λ™ν•©λ‹ˆλ‹€.

render() {
    return (
      <div>
        <div>
            <HighchartsReact
                constructorType={"chart"}
                ref={this.chartComponent}
                highcharts={Highcharts}
                options={this.state.options}
                containerProps = {{ style: {height: '400px'} }}
            />
        </div>
        <div>
            <HighchartsReact
                constructorType={"chart"}
                ref={this.chartComponent}
                highcharts={Highcharts}
                options={this.state.options}
                containerProps = {{ style: {height: '400px'} }}
            />
        </div>
      </div>
    );
  }

μ•Ό 이게 νš¨κ³Όκ°€ μžˆμ–΄ 정말 κ³ λ§ˆμ›Œ

저도 같은 λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€. λ‹€μŒ μŠ€ν¬λ¦°μƒ·μ„ ν™•μΈν•˜μ„Έμš”.

μ˜΅μ…˜ 클릭 μ „(μ „μ²΄ν™”λ©΄μœΌλ‘œ 보기)
https://snipboard.io/WRNQSZ.jpg
μ˜΅μ…˜ 클릭 ν›„(전체화면 μ’…λ£Œ)
https://snipboard.io/7HY3Js.jpg

μ € μ’€ λ„μ™€μ£Όμ‹œκ² μ–΄μš”?

μ•ˆλ…•ν•˜μ„Έμš” @dharmatv λ‹˜, μœ„μ˜ λŒ“κΈ€μ—μ„œ μ†”λ£¨μ…˜μ„ μ‹œλ„ν•΄ λ³΄μ…¨μŠ΅λ‹ˆκΉŒ?

μ•ˆλ…•ν•˜μ„Έμš” @dharmatv λ‹˜, μœ„μ˜ λŒ“κΈ€μ—μ„œ μ†”λ£¨μ…˜μ„ μ‹œλ„ν•΄ λ³΄μ…¨μŠ΅λ‹ˆκΉŒ?

lol 그것은 "μ†”λ£¨μ…˜"이라고 λΆ€λ₯΄λŠ” μ•½κ°„μ˜ μŠ€νŠΈλ ˆμΉ­μž…λ‹ˆλ‹€.

곡식 μˆ˜μ •μ΄ κ°€λŠ₯ν• κΉŒμš”?

λ‚΄κ°€ μž‘μ—…ν•˜κ³  μžˆλŠ” μ•±μ—μ„œ μ°¨νŠΈλŠ” ν™”λ©΄ 크기와 λ™μ μœΌλ‘œ λ³€κ²½λ˜λŠ” 탐색 λͺ¨μŒμ— 따라 달라지기 λ•Œλ¬Έμ— κ³ μ • 치수λ₯Ό κ°€μ§ˆ 수 μ—†μŠ΅λ‹ˆλ‹€. 기본적으둜 μ°¨νŠΈλŠ” νŽ˜μ΄μ§€ ν•˜λ‹¨μ— 있으며 λ‚˜λ¨Έμ§€ 곡간을 μ°¨μ§€ν•©λ‹ˆλ‹€.

@raf18seb , CSS μ†”λ£¨μ…˜μ„ μ‹œλ„ν–ˆμ§€λ§Œ μž‘λ™ν•˜μ§€ μ•Šμ•˜κ³  λ‚˜λ¨Έμ§€ μ†”λ£¨μ…˜μ€ react-js와 관련이 μžˆμ§€λ§Œ Vue jsμ—μ„œ μ™”μŠ΅λ‹ˆλ‹€. 이에 λŒ€ν•œ 해결책을 μ œκ³΅ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?
@dolanmiu 당신이 μ˜³μ•˜μŠ΅λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” Highcharts νŒ€( @raf18seb ),

μ‹œκ°„μ„ λ‚΄μ–΄ 이 버그λ₯Ό ν•΄κ²°ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?

버그가 보고된 지 1년이 λ„˜μ—ˆμŠ΅λ‹ˆλ‹€.
https://www.highcharts.com/forum/viewtopic.php?t=43608

미리 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

μ•ˆλ…•! μžμ„Ένžˆ μ‚΄νŽ΄λ³΄κ³  λ©°μΉ  λ‚΄λ‘œ μƒνƒœλ₯Ό μ•Œλ € λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

Here's a workaround snippet working on all browsers except IE. I'll investigate IE further
νŽΈμ§‘ : screen.height λŠ” IEμ—μ„œ μ œλŒ€λ‘œ μž‘λ™ν•˜λ―€λ‘œ μ œμ™Έλœ λΈŒλΌμš°μ €κ°€ μ—†μŠ΅λ‹ˆλ‹€. https://jsfiddle.net/BlackLabel/6vpgLje5/

(function(H) {
  var addEvent = H.addEvent,
    isMS = H.isMS,
    wrap = H.wrap;

  H.Fullscreen.prototype.open = function() {
    var fullscreen = this,
      chart = fullscreen.chart,
      originalHeight = chart.chartHeight;

    chart.setSize(void 0, screen.height, false);
    fullscreen.originalHeight = originalHeight;

    // Handle exitFullscreen() method when user clicks 'Escape' button.
    if (fullscreen.browserProps) {
      fullscreen.unbindFullscreenEvent = addEvent(chart.container.ownerDocument, // chart's document
        fullscreen.browserProps.fullscreenChange,
        function() {
          // Handle lack of async of browser's fullScreenChange event.
          if (fullscreen.isOpen) {
            fullscreen.isOpen = false;
            fullscreen.close();
            chart.setSize(void 0, originalHeight, false);
          } else {
            fullscreen.isOpen = true;
            fullscreen.setButtonText();
          }
        });
      var promise = chart.renderTo[fullscreen.browserProps.requestFullscreen]();
      if (promise) {
        // No dot notation because of IE8 compatibility
        promise['catch'](function() {
          alert( // eslint-disable-line no-alert
            'Full screen is not supported inside a frame.');
        });
      }
      addEvent(chart, 'destroy', fullscreen.unbindFullscreenEvent);
    }
  };

  wrap(H.Fullscreen.prototype, 'close', function(proceed) {
    proceed.apply(this, Array.prototype.slice.call(arguments, 1));
    var fullscreen = this;

    fullscreen.chart.setSize(void 0, fullscreen.originalHeight, false);
  });

})(Highcharts)

μ•ˆλ…•ν•˜μ„Έμš” @raf18seb , μ–΄λ–»κ²Œ λ°˜μ‘μ—μ„œ 이 슀크립트λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

@haor3 - Highchartsλ₯Ό κ°€μ Έμ˜¨ 직후:

import Highcharts from 'highcharts';

(function(H) {
...
})(Highcharts);

@pawelfus κ°μ‚¬ν•˜μ§€λ§Œ λ¬Έμ œλŠ” μ—¬μ „νžˆ λ°œμƒν•©λ‹ˆλ‹€

@haor3 더 λ§Žμ€ 정보λ₯Ό μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? μ •ν™•νžˆ 무엇이 λ‹Ήμ‹ μ—κ²Œ νš¨κ³Όκ°€ μ—†μŠ΅λ‹ˆκΉŒ? 저희가 μžμ„Ένžˆ μ‚΄νŽ΄λ³Ό 수 μžˆλ„λ‘ κ·€ν•˜μ˜ 사둀λ₯Ό λ³΄μ—¬μ£ΌλŠ” 온라인 데λͺ¨λ₯Ό μ œκ³΅ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ? 감사 ν•΄μš”!

@raf18seb κ·€ν•˜μ˜ λͺ¨λ²”에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€. μ €μ—κ²Œ νš¨κ³Όμ μž…λ‹ˆλ‹€!

λ‚˜λŠ” μ•½κ°„μ˜ λ³€κ²½μ„ν–ˆκ³  주둜 이것을 μΆ”κ°€ν•©λ‹ˆλ‹€.

// <strong i="8">@see</strong> https://github.com/highcharts/highcharts/issues/13220
chart.pointer.chartPosition = null;

전체 ν™”λ©΄ λͺ¨λ“œλ‘œ λ“€μ–΄κ°„ ν›„ 마우슀 μœ„μΉ˜μ— λ¬Έμ œκ°€ 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.
λ‚΄ 버전:

export const fullscreenEventListener = (H) => {
  if (!H.Fullscreen) {
    return;
  }

  const { addEvent, wrap } = H;

  H.Fullscreen.prototype.open = function () {
    const fullscreen = this;
    const { chart } = fullscreen;
    const originalWidth = chart.chartWidth;
    const originalHeight = chart.chartHeight;

    // eslint-disable-next-line no-restricted-globals
    chart.setSize(screen.width, screen.height, false);
    // <strong i="13">@see</strong> https://github.com/highcharts/highcharts/issues/13220
    chart.pointer.chartPosition = null;

    fullscreen.originalWidth = originalWidth;
    fullscreen.originalHeight = originalHeight;

    // Handle exitFullscreen() method when user clicks 'Escape' button.
    if (fullscreen.browserProps) {
      fullscreen.unbindFullscreenEvent = addEvent(chart.container.ownerDocument, // chart's document
        fullscreen.browserProps.fullscreenChange,
        () => {
          // Handle lack of async of browser's fullScreenChange event.
          if (fullscreen.isOpen) {
            fullscreen.isOpen = false;
            fullscreen.close();
            chart.setSize(originalWidth, originalHeight, false);
            chart.pointer.chartPosition = null;
          } else {
            fullscreen.isOpen = true;
            fullscreen.setButtonText();
          }
        });
      const promise = chart.renderTo[fullscreen.browserProps.requestFullscreen]();
      if (promise) {
        // No dot notation because of IE8 compatibility
        promise['catch'](() => {
          // eslint-disable-next-line no-alert
          alert('Full screen is not supported inside a frame.');
        });
      }
      addEvent(chart, 'destroy', fullscreen.unbindFullscreenEvent);
    }
  };

  wrap(H.Fullscreen.prototype, 'close', function (proceed) {
    // eslint-disable-next-line prefer-rest-params
    proceed.apply(this, Array.prototype.slice.call(arguments, 1));
    const fullscreen = this;
    fullscreen.chart.setSize(fullscreen.originalWidth, fullscreen.originalHeight, false);
    fullscreen.chart.pointer.chartPosition = null;
  });
};

그리고 ν•œ 가지 더 λ§μ”€λ“œλ¦¬κ³  싢은 것은 전체 ν™”λ©΄ λͺ¨λ“œμ—μ„œ 산점도 마우슀 μœ„μΉ˜ λ¬Έμ œμ— λŒ€ν•œ ν•΄κ²° λ°©λ²•μž…λ‹ˆλ‹€.

image

λ‚˜λŠ”μ΄ 문제λ₯Ό λ‹€μŒκ³Ό 같이 μˆ˜μ •ν–ˆλ‹€κ³  μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€.

// <strong i="9">@see</strong> https://github.com/highcharts/highcharts/issues/13220
chart.pointer.chartPosition = null;

κ·ΈλŸ¬λ‚˜ 이 μ†”λ£¨μ…˜μ΄ μ‚°μ λ„μ—μ„œ μž‘λ™ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” 것을 μ•Œμ•˜μŠ΅λ‹ˆλ‹€.
λΆ„μ‚°μ˜ 경우 λ‹€μŒμ„ μΆ”κ°€ν•΄μ•Ό ν•©λ‹ˆλ‹€.

  Highcharts.Pointer.prototype.getChartPosition = function () {
    const { chart } = this;
    const { container } = chart;
    // eslint-disable-next-line no-return-assign
    return (this.chartPosition = Highcharts.offset(container));
  };
이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰