Panzoom: ๋ด‰์‡„๋ฅผ ์œ„ํ•ด ์ ์ ˆํ•œ ์น˜์ˆ˜ ์‚ฌ์šฉ

์— ๋งŒ๋“  2016๋…„ 08์›” 30์ผ  ยท  10์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: timmywil/panzoom

๋ฌธ์ œ์˜ ์ฃผ์ œ

Containment๋Š” ๋•Œ๋•Œ๋กœ panzoom ์š”์†Œ ์ฐจ์› ๋Œ€์‹  ๋ถ€๋ชจ ์ฐจ์›์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‹น์‹ ์˜ ํ™˜๊ฒฝ

  • jquery.panzoom 3.2.2 ๋ฒ„์ „
  • jquery 3.1.0 ๋ฒ„์ „
  • ์–ด๋–ค ๋ธŒ๋ผ์šฐ์ €์™€ ๋ฒ„์ „ Chrome 52

    ์žฌํ˜„ ๋‹จ๊ณ„

http://jsbin.com/cidebod/edit?html , css, js, output

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

@arkoe ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Pull Request # 279 ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ์•ˆํƒ€๊น๊ฒŒ๋„ ์˜ˆ์ œ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”.

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

@timmywil ์ตœ๊ทผ์—์ด ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ž‘์„ฑํ•˜๊ณ  PR์„ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค. https://github.com/timmywil/jquery.panzoom/pull/279/files์—์„œ ํ™•์ธ ํ•˜๊ฑฐ๋‚˜ ์ง์ ‘ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค .

@awartani ๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ˆ˜์ •์ด ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ƒ์œ„ div์˜ ํฌ๊ธฐ๊ฐ€ panzoom ์š”์†Œ (์ด๋ฏธ์ง€)๋ณด๋‹ค ์ž‘์„ ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@timmywil ์ด ๋ฌธ์ œ๊ฐ€ ์–ธ์ œ ํ•ด๊ฒฐ ๋ ์ง€ ์•„์‹ญ๋‹ˆ๊นŒ? ๋‚˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ •๋ง ์ข‹์•„ํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค :-).

@arkoe ๋‚˜๋Š” ๋‹น์‹ ์ด ์ž˜๋ชป๋œ ๋ธŒ๋žœ์น˜๋ฅผ ํ…Œ์ŠคํŠธํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. http://jsbin.com/gigadis/edit?html , css, js, output์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

@awartani ๊ท€ํ•˜์˜ ์˜ˆ์—์„œ panzoom ์š”์†Œ (ํŒŒ๋ž€์ƒ‰ ์‚ฌ๊ฐํ˜•)๋Š” ๋ถ€๋ชจ๋ณด๋‹ค ์ž‘์Šต๋‹ˆ๋‹ค. ์š”์†Œ๋ฅผ ๋ถ€๋ชจ๋ณด๋‹ค ํฌ๊ฒŒ ๋งŒ๋“ค๋ฉด ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ์ด ๋ฌธ์ œ๋ฅผ ๋งŒ๋“  ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋ƒฅ ํ‘น ๋น ์ ธ์žˆ๋‹ค :)

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค @arkoe ๋‚˜๋Š” ๋‹น์‹  ์ด์ด ๋ฌธ์ œ๋ฅผ ๋งŒ๋“  ๊ฒƒ์œผ๋กœ ๊ฐ€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ํ•ด๊ฒฐํ•˜๊ธฐ ์‰ฌ์šธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Pull Request # 279๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ์‚ดํŽด๋ณด์„ธ์š” :

if (contain === 'invert' || (contain === 'automatic' && zoomAspectH < 1.01)) {
//original code
} else {
//my fix
var originalHeight = height / scale;
var originDiff = (originalHeight - height) / 2;
matrix[5] = Math.max(Math.min(matrix[5], conHeight - originalHeight + originDiff), -originDiff);
}

์ฒซ ๋ฒˆ์งธ if ๋ฌธ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž˜ ๋ชจ๋ฅด๊ณ  ๋‚ด๊ฐ€ ์ฐพ๊ณ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— else ๋ฌธ์„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์ด ๋˜‘๊ฐ™์€ ์ˆ˜์ •์„ ์ทจํ•˜๊ณ  ์•ฝ๊ฐ„ ์กฐ์ •ํ•˜๋ฉด ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.

@awartani ๋‚˜๋Š” ๋‹น์‹ ์˜ PR์„ ์‚ฌ์šฉํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ๋†€์•„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ๊ฝค ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ์ง€ ๋งŒ ๊ณ ์น  ์ˆ˜์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•œ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์„ ์•Œ๋ ค์ฃผ๋Š” ์ƒ๊ฐ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋น ๋ฅธ ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@arkoe ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‹œ๋„ํ•ด ๋ณผ ๊ฒƒ์ด ์žˆ์—ˆ์ง€๋งŒ

@awartani ๋‘ ๊ฐ€์ง€ ์˜ˆ๋ฅผ ์—…๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. demo.html์€ @timmywil ์˜ dist ํŒŒ์ผ์ด๊ณ  demo2.html์€ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. http://arko.io/x/panzoom/demo.html http://arko.io/x/panzoom/demo2.html

@arkoe ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Pull Request # 279 ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ์•ˆํƒ€๊น๊ฒŒ๋„ ์˜ˆ์ œ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”.

Thnx @awartani. ๋‚ด ๋ฌธ์ œ๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰