ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ 100% ΡΠΈΡΠΈΠ½ΠΎΠΉ?
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π±ΡΠ΄ΡΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΡΠΊΡΠΎΠ²Π΅Π½Π½Ρ ...
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π±ΡΠ΄ΡΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΡΠΊΡΠΎΠ²Π΅Π½Π½Ρ ...
Π― ΡΠ΄Π΅Π»Π°Π» Ρ ΠΎΠ»ΡΡ Π² ΡΡΠΈΠ»Π΅ ΠΠΠ, ΡΠΈΡΠΈΠ½Π° Π±ΡΠ»Π° ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠΉ.
ΠΠΎ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ»Π°Π½ΡΠ΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΈΡΠΈΠ½Π° ΡΡΠ°Π»Π° ΠΌΠ΅Π½ΡΡΠ΅.
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅:
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΠΊΡΠ°Π½ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π» (ΡΠΈΡΠΈΠ½Π° 100%) Π½Π° Π»ΡΠ±ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΊΡΠ°Π½Π°.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.
(Π― Π½Π΅ Π²ΠΈΠΆΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ)
ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π» Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΏΠ»Π°Π½ΡΠ΅ΡΠ΅?
ΠΡΡΡ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
Π― ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ» ΡΠΈΡΠΈΠ½Ρ Ρ
ΠΎΠ»ΡΡΠ° 100%, Π²ΡΡΠΎΡΡ 100% Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΠΊΡΠ°Π½Π΅
Π’ΠΎΠ³Π΄Π° Ρ
ΠΎΠ»ΡΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ. ΠΠΎΠΊΠ°ΠΆΠΈ Π½Π°ΠΌ ΠΊΠΎΠ΄.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ div
wrap canvas
. ΠΠ°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ResizeObserver
listen div
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°. ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ canvas
.
ΠΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ useMeasure
ΠΈΠ· react-use
. Π‘ΠΌ. Π½ΠΈΠΆΠ΅:
import React from 'react'
import { useMeasure } from 'react-use'
export default () => {
const [containerRef, { width, height }] = useMeasure();
return (
<div ref={containerRef} style={{ width: '100%', height: '100%' }}>
<canvas width={width} height={height} />
</div>
)
}
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ. ΠΠΎΠΊΠ°ΠΆΠΈ Π½Π°ΠΌ ΠΊΠΎΠ΄.