Signature_pad: 100% ๋„ˆ๋น„๋กœ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2019๋…„ 05์›” 18์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: szimek/signature_pad

100% ๋„ˆ๋น„๋กœ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด์•ผ๊ธฐ๋Š” ์‹ธ๋‹ค. ์ฝ”๋“œ๋ฅผ ๋ณด์—ฌ์ฃผ์„ธ์š”.

๋ชจ๋“  6 ๋Œ“๊ธ€

์ข€ ๋” ๋ช…์‹œํ•ด์ฃผ์„ธ์š”...

์ข€ ๋” ๋ช…์‹œํ•ด์ฃผ์„ธ์š”...

ํ•ธ๋””ํ˜•์œผ๋กœ ์ƒ๊ฐํ•ด์„œ ์บ”๋ฒ„์Šค๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, ๋„ˆ๋น„๊ฐ€ ๋”ฑ ๋งž์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋“ค์€ ํƒœ๋ธ”๋ฆฟ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜์—ฌ ๋„ˆ๋น„๊ฐ€ ์ž‘์•„์กŒ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ ์ฐธ์กฐ:

์„œ๋ช… ํ™”๋ฉด์„ ๋ชจ๋“  ํ™”๋ฉด ํฌ๊ธฐ์— ๋ฐ˜์‘ํ•˜๋„๋ก(๋„ˆ๋น„ 100%) ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

(๋‚˜๋Š” ๋‹น์‹ ์˜ ์ด๋ฏธ์ง€๋ฅผ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค)
๋ฐ๋ชจ ์ฝ”๋“œ๊ฐ€ ํƒœ๋ธ”๋ฆฟ์—์„œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๊นŒ?

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ชจ๋ฐ”์ผ ํ™”๋ฉด์—์„œ ์บ”๋ฒ„์Šค ๋„ˆ๋น„ 100% ๋†’์ด 100%๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋ฉด ์บ”๋ฒ„์Šค๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด์•ผ๊ธฐ๋Š” ์‹ธ๋‹ค. ์ฝ”๋“œ๋ฅผ ๋ณด์—ฌ์ฃผ์„ธ์š”.

div wrap canvas . ๊ทธ๋Ÿฐ ๋‹ค์Œ ResizeObserver ์‚ฌ์šฉํ•˜์—ฌ 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>
    )
}
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰