Gridstack.js: ์‚ฌ์šฉ์ž ์ •์˜ ๋“œ๋ž˜๊ทธ ํ•ธ๋“ค

์— ๋งŒ๋“  2015๋…„ 03์›” 24์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: gridstack/gridstack.js

์‚ฌ์šฉ์ž ์ •์˜ ๋“œ๋ž˜๊ทธ ํ•ธ๋“ค ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์˜ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?
ํŒจ๋„ ํ—ค๋”(์ „์ฒด๊ฐ€ ์•„๋‹˜)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ญ๋ชฉ์„ ๋“œ๋ž˜๊ทธ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๋งŽ์€ ์กฐํ•ฉ์œผ๋กœ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

    <div class="grid-stack">
        <div class="grid-stack-item"
                 data-gs-x="0" data-gs-y="0"
                 data-gs-width="4" data-gs-height="2">
            <div class="grid-stack-item-content panel panel-default">
                <div class="panel-heading clearfix">
                    <span class="panel-title pull-left"><span class="glyphicon glyphicon-asterisk"></span> <span class="panel-title-text">Featuring</span></span>
                </div>
                <div class="panel-body ">
                    <ul class="list-group">
                        <li class="list-group-item">a</li>
                        <li class="list-group-item">v</li>
                    </ul>
                </div>
            </div>
        </div>
    </div

js ์ฝ”๋“œ:

    var options = {
        cell_height: 80,
        vertical_margin: 10,
        animate: true,
        handle:  ??? 
    };
    this.$('.grid-stack').gridstack(options);

handle:'.panel' , handle:'panel-heading' ๋ฐ ํ•ธ๋“ค ์—†์ด ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  grid-stack-item-content ํด๋ž˜์Šค๋„ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋ชจ๋“  ๊ฒฝ์šฐ์— ๊ฒฐ๊ณผ๋Š” either the whole thing moves or nothing moves at all .

ํ•ญ๋ชฉ์„ ํ—ค๋”๋กœ๋งŒ ์ด๋™ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

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

์•ผ ํฌ๋ฆฌ์Šˆ๋‚˜

๋ฌธ์ œ๋Š” ์˜ต์…˜ ๋ณ€์ˆ˜์— ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด 379ํ–‰๋ถ€ํ„ฐ ๊ธฐ๋ณธ ์˜ต์…˜๊ณผ ๊ตฌ์„ฑ ๋ฐฉ์‹์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์ •์˜ ๋“œ๋ž˜๊ทธ ๊ฐ€๋Šฅ ์ปจํ…Œ์ด๋„ˆ์˜ ํ•ธ๋“ค์€ ๋“œ๋ž˜๊ทธ ๊ฐ€๋Šฅ ์†์„ฑ์˜ ํ•˜์œ„ ์†์„ฑ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. js ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

var options = {
    cell_height: 80,
    vertical_margin: 10,
    animate: true,
    draggable: {
        handle: '.panel-heading',
    }
};
this.$('.grid-stack').gridstack(options);

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

์•ผ ํฌ๋ฆฌ์Šˆ๋‚˜

๋ฌธ์ œ๋Š” ์˜ต์…˜ ๋ณ€์ˆ˜์— ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด 379ํ–‰๋ถ€ํ„ฐ ๊ธฐ๋ณธ ์˜ต์…˜๊ณผ ๊ตฌ์„ฑ ๋ฐฉ์‹์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์ •์˜ ๋“œ๋ž˜๊ทธ ๊ฐ€๋Šฅ ์ปจํ…Œ์ด๋„ˆ์˜ ํ•ธ๋“ค์€ ๋“œ๋ž˜๊ทธ ๊ฐ€๋Šฅ ์†์„ฑ์˜ ํ•˜์œ„ ์†์„ฑ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. js ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

var options = {
    cell_height: 80,
    vertical_margin: 10,
    animate: true,
    draggable: {
        handle: '.panel-heading',
    }
};
this.$('.grid-stack').gridstack(options);

๋ฉ‹์ ธ์š”. ์ •๋ง ๋งค๋ ฅ์ ์ด๊ตฐ์š”. ๋‹น์‹ ์€ ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋ฃจ ์ข…์ผ ๊ทธ๊ฒƒ์„ ๊ฑท์–ด์ฐจ๊ณ  ์—ฌ๊ธฐ ๋‹น์‹ ์˜ ๋Œ€๋‹ต์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค :) ๋†€๋ž์Šต๋‹ˆ๋‹ค.

์ •๋ง ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

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