์๋ ํ์ธ์,
Pandzoom ์ฝํ ์ธ ๋ฅผ ์ค์์ดํํ์ฌ ์คํฌ๋กคํ๊ณ ์ถ์ต๋๋ค.
๋ด ํ๋ก์ ํธ์์ ์ด๋ฏธ์ง๋ ๋๋น๊ฐ ๋ทฐํฌํธ์ 100%์ด๊ณ ๋ด ์ธ์น๊ฐ pandzoom ์ด๋ฏธ์ง์ ์์ ๋ ๋ ผ๋ฆฌ๊ฐ ์ถ๊ฐ๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ Pandzoom์๋ ๋ถ๊ตฌํ๊ณ ์คํฌ๋กค์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ํ์ด ์์ต๋๊น?
์: ์ด๋ฏธ์ง๊ฐ ์์ง ํ๋/์ถ์๋์ง ์์ ๊ฒฝ์ฐ? ์ด๋ฏธ์ง์ ํ๋/์ถ์๊ฐ ์์ง๋ง ์ด๋ฏธ์ง๊ฐ ์์ ์ปจํ ์ด๋์ ์ ํ์ ์ํด ์ฐจ๋จ๋ ๋? ์คํฌ๋กค์ด ์๋์์ ์๋ก ํน์ ๋น์จ์ ๋ํ๋ผ ๋ ?
๊ฐ์ฌ ํด์
๋์๊ฒ๋ ์ด๋ฐ ํ๋์ด ํ์ํ๋ค. ์ด๋ฏธ minScale์ ์์ ๋ ํฌ์ค์ ์ค์์ดํํ๊ณ ํ๋ํ ๋๋ง ํจ๋์ ํ์ฑํํ ์ ์๋๋ก ์ค์ ํ ์ ์๋ "panOnlyWhenZoomed" ํ๋๊ทธ๊ฐ ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
๊ทธ๋์ panzoom์ด minScale ๊ฐ์ ์ด๊ณผํ์ฌ ํ์ฅ๋์๋์ง ํ์ธํ๊ณ ๊ทธ์ ๋ฐ๋ผ disablePan์ ์ค์ ํ์ฌ ๊ธฐ๋ฅ์ ์์ฃผ ์ฝ๊ฒ ์์ผ ์ ์์ต๋๋ค. iOS ๊ธฐ๊ธฐ์ ๋ค์ํ Chrome ๊ธฐ๊ธฐ ์๋ฎฌ๋ ์ดํฐ์์ ํ ์คํธํ๋๋ฐ ์ ๋๋ก ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
// Set up panzoom container, making sure to disablePan by default
var $panzoom = $(".panzoom").panzoom({
minScale: 1,
disablePan: true
});
// After a zoom event, check zoomed state and reset the disablePanning
$panzoom.on('panzoomzoom', function(e, panzoom, scale, options) {
$panzoom.panzoom("option", "disablePan",
Math.abs(scale - options.minScale) < 0.0001);
});
ํธ์ง: ๋นํฐ์น์์ ๋ ๋ค ์ ๋๋ก ์๋ํ๋๋ก ์ฝ๊ฐ ์กฐ์ ํ๊ณ ์กฐ๊ธ ๋ ์ฌ๋ฆผํ๊ฒ ๋ง๋ค์์ต๋๋ค.
๋์ํ๋ค. ์ด ๊ธฐ๋ฅ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด lib๊ฐ ๋ค์ ์ธ๋ชจ๊ฐ ์์ต๋๋ค. ํนํ ๋ ์์ ํฐ์น ์ฅ์น์์๋ ๋์ฑ ๊ทธ๋ ์ต๋๋ค.
์ด๋ฏธ์ง๊ฐ ํด๋น ์ฅ์น์์ 100% ๋๋น๋ฅผ ๊ฐ๋ ๊ฒ์ ๋งค์ฐ ํน๋ณํ ๊ฒฝ์ฐ๊ฐ ์๋๋ฉฐ ๋ชจ๋ ์ต์ข
์ฌ์ฉ์๊ฐ ์ด ์ด๋ฏธ์ง ํฌ ์ปจํ
์ด๋ ๋ด๋ถ์์ ์บก์ฒ๋๋ ๊ฒฝ์ฐ ํ์ด์ง๋ฅผ ๋ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋์๊ฒ๋ ์ด๋ฐ ํ๋์ด ํ์ํ๋ค. ์ด๋ฏธ minScale์ ์์ ๋ ํฌ์ค์ ์ค์์ดํํ๊ณ ํ๋ํ ๋๋ง ํจ๋์ ํ์ฑํํ ์ ์๋๋ก ์ค์ ํ ์ ์๋ "panOnlyWhenZoomed" ํ๋๊ทธ๊ฐ ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
๊ทธ๋์ panzoom์ด minScale ๊ฐ์ ์ด๊ณผํ์ฌ ํ์ฅ๋์๋์ง ํ์ธํ๊ณ ๊ทธ์ ๋ฐ๋ผ disablePan์ ์ค์ ํ์ฌ ๊ธฐ๋ฅ์ ์์ฃผ ์ฝ๊ฒ ์์ผ ์ ์์ต๋๋ค. iOS ๊ธฐ๊ธฐ์ ๋ค์ํ Chrome ๊ธฐ๊ธฐ ์๋ฎฌ๋ ์ดํฐ์์ ํ ์คํธํ๋๋ฐ ์ ๋๋ก ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํธ์ง: ๋นํฐ์น์์ ๋ ๋ค ์ ๋๋ก ์๋ํ๋๋ก ์ฝ๊ฐ ์กฐ์ ํ๊ณ ์กฐ๊ธ ๋ ์ฌ๋ฆผํ๊ฒ ๋ง๋ค์์ต๋๋ค.