Gridstack.js: ์ „์ฒด ์ƒ์œ„ ๋†’์ด๋ฅผ ์ทจํ•˜๋Š” ์ค‘์ฒฉ ๊ทธ๋ฆฌ๋“œ ์ง€์›(์—ด๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ % ํ–‰ ์‹œ๋ฎฌ๋ ˆ์ด์…˜)

์— ๋งŒ๋“  2017๋…„ 09์›” 19์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: gridstack/gridstack.js

์ค‘์ฒฉ๋œ ๊ทธ๋ฆฌ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๊ทธ๋ฆฌ๋“œ ๋‚ด์—์„œ ๋ถˆํˆฌ๋ช…ํ•œ ์œ„์ ฏ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ด˜์ด˜ํ•œ ์œ„์ ฏ ๊ทธ๋ฃน์ธ ๋ณตํ•ฉ ์œ„์ ฏ์„ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(๋‹จ์œ„๋กœ ์ด๋™, ๋ณ„๋„๋กœ ํŽธ์ง‘๋จ). ๋นจ๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋ชจ gridItem์ด ์ œ๊ณตํ•˜๋Š” ์ „์ฒด ๊ณต๊ฐ„(๋„ˆ๋น„์™€ ๋†’์ด)์„ ์ทจํ•˜๊ธฐ ์œ„ํ•ด ์ค‘์ฒฉ ๊ทธ๋ฆฌ๋“œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํœด๋ฆฌ์Šคํ‹ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ƒ์ ์œผ๋กœ๋Š” grid.cellHeight = 'dynamic' ๊ฐ€ ์ „์ฒด ๋„ˆ๋น„(% ๊ธฐ๋ฐ˜ ํฌ๊ธฐ ์กฐ์ •)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์—ด๊ณผ ํ•จ๊ป˜ ์˜ค๋Š˜๋‚  ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๋ถ€๋ชจ์˜ ์ „์ฒด ๋†’์ด๋ฅผ ์ทจํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ํ•ญ๋ชฉ์„ ๋“œ๋ž˜๊ทธ/๋ฐฐ์น˜ํ•  ๋•Œ ์ผ์‹œ์ ์œผ๋กœ ์ƒˆ ํ–‰์ด ์ƒ์„ฑ๋˜์ง€๋งŒ(๋‚ด์šฉ์ด ๋งž์ง€ ์•Š์„ ๋•Œ ์Šคํฌ๋กค V ๋ง‰๋Œ€ ์ƒ์„ฑ), ๋†“์„ ๋•Œ ํฌ๊ธฐ์— ๋งž๊ฒŒ ํฌ๊ธฐ๊ฐ€ ์กฐ์ •๋ฉ๋‹ˆ๋‹ค(์…€ ๋†’์ด๋ฅผ ๋งž์ถค, ๋™์ผํ•œ ํ–‰# ์œ ์ง€ ๋ฐ ์ „์ฒด์ ์œผ๋กœ ์œ ์ง€). ํ˜•์„ธ)

์ง€๊ธˆ์€ ์˜†์—์„œ ํ•ดํ‚น์„ ์‹œ๋„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์ง ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ถ€๋ถ„์€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค!

๊ท€ํ•˜์˜ ํ™˜๊ฒฝ

v 0.3.0 ๋ฐ ์ตœ์‹  1.0.0-dev๋Š” ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ๋™์ž‘์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค(

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

1) https://jsfiddle.net/cLdzzL8p/2/
ํ•ญ๋ชฉ ํฌ๊ธฐ ์กฐ์ •์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ถ”๊ฐ€ ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” demo/nested.html์˜ ๋ณต์‚ฌ๋ณธ์ž…๋‹ˆ๋‹ค.
$('#๊ทธ๋ฆฌ๋“œ').on('gsresizestop')
2) ์˜ค๋ฅธ์ชฝ(์ค‘์ฒฉ) ๊ทธ๋ฆฌ๋“œ ํ•ญ๋ชฉ์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๊ฑฐ๋‚˜ ์ด๋ฒคํŠธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๋” ๋„“๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
3) oldCellHeight = 60px๋Š” ๋” ํฐ ์ˆซ์ž๋กœ ์ด๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋™์ผํ•œ 300pix gridItem์˜ ๊ฒฝ์šฐ 140px).

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

๋ถ€๋ชจ์˜ ์ „์ฒด ๋†’์ด๋ฅผ ์ทจํ•˜๋Š” ์ค‘์ฒฉ ๊ทธ๋ฆฌ๋“œ(๋™์ ์œผ๋กœ ๋ณ€๊ฒฝ๋จ)

์‹ค์ œ ํ–‰๋™

v0.3.0(๊ทธ๋ฆฌ๋“œ์Šคํ„ฐ ์ƒ˜ํ”Œ)์—์„œ ๊ทธ๋ฆฌ๋“œ๊ฐ€ ์„ฑ์žฅํ•˜๊ณ  ์ „์ฒด ๋†’์ด๋ฅผ ์ฐจ์ง€ํ•˜์—ฌ ์…€๋„ ๋” ์ปค์ง€๋„๋ก ๊ฐ•์ œํ•˜์ง€๋งŒ ๋ชจ๋“  ํ˜•์ œ gridItems๋„ ์„ฑ์žฅํ•ฉ๋‹ˆ๋‹ค(์ž˜๋ชป๋œ ๊ณต์œ  ๋ฆฌ์†Œ์Šค์ด๊ฑฐ๋‚˜ $() ๊ฒ€์ƒ‰์ด ์ค‘์ฒฉ ๊ทธ๋ฆฌ๋“œ์˜ ์ž์‹์œผ๋กœ ํ•„ํ„ฐ๋ง๋ฉ๋‹ˆ๋‹ค.

1.0.0-dev(๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ)์—์„œ GridStack.prototype._updateStyles()๊ฐ€ ๋” ์ผ์ฐ ์ด๋™๋œ ์ด ์ฝ”๋“œ ์ค„๋กœ ์ธํ•ด ์ผ์ฐ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

if (this._styles._max !== 0 && maxHeight <= this._styles._max) { ๋ฐ˜ํ™˜; } // this._styles._max๋ฅผ ๊ณ„์† ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” https://github.com/gridstack/gridstack.js/commit/a38d78eebe59686a6ffea1b802791ac39e15de2d ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. #766๋„

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

#717 #728 #118 #404 ๋ฐ ์•„๋งˆ๋„ ๋งŽ์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ๋™์ผ/๊ด€๋ จ... ๊ทธ๋ฆฌ๋“œ๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ cellHeight = "dynamic" ๊ฐ€ ๋ถ€๋ชจ ๋†’์ด์˜ 100%๋ฅผ ์ฐจ์ง€ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค(๋ถ€๋ชจ์— ๋Œ€ํ•œ ํฌ๊ธฐ ์กฐ์ • ์ด๋ฒคํŠธ ํŠธ๋ฆฌ๊ฑฐ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์†Œํ•˜๊ณ  ์ปจํ…Œ์ด๋„ˆ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ๋‹ค๋ฅธ griditem/div์ด์ง€๋งŒ ์™ธ๋ถ€ ์ฐฝ/div๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ), ํ—ˆ์šฉ๋œ ๊ณต๊ฐ„์—์„œ ํ•ญ๋ชฉ ์ถ”๊ฐ€/์ œ๊ฑฐ ๋ฐ ๋“œ๋ž˜๊ทธ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

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

#717 #728 #118 #404 ๋ฐ ์•„๋งˆ๋„ ๋งŽ์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ๋™์ผ/๊ด€๋ จ... ๊ทธ๋ฆฌ๋“œ๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ cellHeight = "dynamic" ๊ฐ€ ๋ถ€๋ชจ ๋†’์ด์˜ 100%๋ฅผ ์ฐจ์ง€ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค(๋ถ€๋ชจ์— ๋Œ€ํ•œ ํฌ๊ธฐ ์กฐ์ • ์ด๋ฒคํŠธ ํŠธ๋ฆฌ๊ฑฐ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์†Œํ•˜๊ณ  ์ปจํ…Œ์ด๋„ˆ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ๋‹ค๋ฅธ griditem/div์ด์ง€๋งŒ ์™ธ๋ถ€ ์ฐฝ/div๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ), ํ—ˆ์šฉ๋œ ๊ณต๊ฐ„์—์„œ ํ•ญ๋ชฉ ์ถ”๊ฐ€/์ œ๊ฑฐ ๋ฐ ๋“œ๋ž˜๊ทธ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

@argument ๋˜๋Š” ๋†’์ด๋ฅผ X ํ–‰ ์ˆ˜๋กœ ์„ค์ •ํ•˜๋ฉด gridstack์ด ์ž์ฒด ๋˜๋Š” ๋ถ€๋ชจ์˜ ๋†’์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ X ํ–‰์œผ๋กœ ๋ถ„ํ• ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ๋„ˆ๋น„๊ฐ€ ์ง€๊ธˆ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฐ ํ–‰ ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ์„ ์›ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ verticalMargin์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค. ์ž๋™ ํ™•์žฅ ๋†’์ด ๋™์ž‘์˜ ๊ฒฝ์šฐ ๋Œ€์‹  ๋†’์ด๋ฅผ "์ž๋™"์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋˜๋Š” ๋†’์ด๋ฅผ X ํ–‰์˜ ์–‘์œผ๋กœ ์„ค์ •ํ•˜๋ฉด gridstack์ด ์ž์ฒด ๋˜๋Š” ๋ถ€๋ชจ์˜ ๋†’์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ X ํ–‰์œผ๋กœ ๋ถ„ํ• ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@krilllind ์—ด(12)๊ฐœ์™€ ํ–‰์„ ๊ณ ์ •ํ•œ ๊ฒฝ์šฐ ํฌ๊ธฐ๋ฅผ ์ค„์ด์ง€ ์•Š๊ณ ๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ์‹ค์ œ๋กœ ์ถ”๊ฐ€/์ œ๊ฑฐํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์—ฌ์ „ํžˆ ์ ˆ๋Œ€ ์ตœ๋Œ€๊ฐ’์ด ์žˆ์Šต๋‹ˆ๋‹ค. height ์˜ค๋Š˜์€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ํ–‰ ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋ฏ€๋กœ ์‹ค์ œ๋กœ maxHeight (๋˜๋Š” `maxRow')์—ฌ์•ผ ํ•˜๋ฏ€๋กœ ์ œ์•ˆํ•œ ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด ์š”์ฒญ๊ณผ ๋‹ค๋ฅธ ์š”์ฒญ์€ ๊ทธ๋ฆฌ๋“œ๊ฐ€ ๋ถ€๋ชจ๊ฐ€ ์ œ๊ณตํ•œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋†’์ด๋ฅผ ์ฑ„์šฐ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ ์—ฌ์ „ํžˆ ํ•ญ๋ชฉ์„ ์ƒํ˜ธ ์ž‘์šฉ/์ถ”๊ฐ€/์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ง„์ „์ด ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ? ์ด ๋ฌธ์ œ์™€ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ๋‚ด๊ฐ€ ๋งŒ๋“  ์ƒˆ๋กœ์šด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. #814

๊ณง ์ƒˆ ๋ฒ„์ „์œผ๋กœ ์ถœ์‹œํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ?
๋‚ด ์ž์‹ ์˜ ํ•„์š”๋ฅผ ์œ„ํ•ด ํŠน๋ณ„ ํŒจ์น˜๋ฅผ ๋งŒ๋“ค์—ˆ์ง€๋งŒ ๋งŒ์กฑ์Šค๋Ÿฝ์ง€ ์•Š๊ณ  ๋‚ด ๋ฒ„์ „์— ๋‹ค๋ฅธ ๋ฒ„๊ทธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ด์— ๋Œ€ํ•œ ์ง€์†์ ์ธ ์†”๋ฃจ์…˜์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@Altraya ๋‚˜๋Š” ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋ณด์ง€ ์•Š์•˜์ง€๋งŒ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด์— ๋Œ€ํ•œ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ์ œ์ถœํ•˜๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค!

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

๊ด€๋ จ ๋ฌธ์ œ

KrishnaPG picture KrishnaPG  ยท  3์ฝ”๋ฉ˜ํŠธ

GeniusWiki picture GeniusWiki  ยท  3์ฝ”๋ฉ˜ํŠธ

athamsnajeeb1 picture athamsnajeeb1  ยท  7์ฝ”๋ฉ˜ํŠธ

alissondiel picture alissondiel  ยท  6์ฝ”๋ฉ˜ํŠธ

ascendantofrain picture ascendantofrain  ยท  6์ฝ”๋ฉ˜ํŠธ