Gridstack.js: Gridstack์€ ๋ฒ„์ „ 2.0.0 ์ด์ƒ์—์„œ`class = "grid-stack"`์š”์†Œ๊ฐ€ shadow-dom์ด์žˆ๋Š” ์›น ์ปดํฌ๋„ŒํŠธ ์ธ ๊ฒฝ์šฐ ์ž‘๋™์„ ์ค‘์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค!

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

Gridstack์€ class="grid-stack" ์š”์†Œ๊ฐ€ shadow-dom์ด์žˆ๋Š” ์›น ๊ตฌ์„ฑ ์š”์†Œ ์ธ ๊ฒฝ์šฐ ๋ฒ„์ „ 2.0.0 ์ด์ƒ์—์„œ ์ž‘๋™์„ ์ค‘์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค!

์ด์ „์—๋Š” grid-stack 1.2.0 ๋ฒ„์ „์„ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ ์ตœ์ƒ์œ„ ์š”์†Œ (class = "grid-stack)๊ฐ€ ์›น ๊ตฌ์„ฑ ์š”์†Œ์ด๊ณ  shadow-dom์ด์žˆ๋Š” ์›น ๊ตฌ์„ฑ ์š”์†Œ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 2.0.0 ๋ฒ„์ „์œผ๋กœ ์˜ฎ๊ธธ ๋•Œ๊นŒ์ง€ ์™„๋ฒฝํ•˜๊ฒŒ! ์ตœ์‹  ๋ฒ„์ „ ์ธ 2.1.0๋„ ํ™•์ธํ–ˆ์ง€๋งŒ ๊ทธ ๋ฒ„์ „์—์„œ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค!

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

  • 2.0.0 ์ด์ƒ
  • Chrome ์ตœ์‹ 

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

<vi-dashboard id="dashboardEl" class="grid-stack">
  <vi-panel loc-x="0" loc-y="0" width="3" height="3" class="grid-stack-item">
       <div class="grid-stack-item-content></div>
  </vi-panel>
  <vi-panel loc-x="3" loc-y="0" width="3" height="3" class="grid-stack-item>
       <div class="grid-stack-item-content></div>
  </vi-panel>
</vi-dashboard>

์œ„์˜ ๋งˆํฌ ์—…์ด ๋ณด์ด๋ฉด vi-panel๊ณผ vi-dashboard๋Š” ๋ชจ๋‘ ์›น ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค! ์›น ๊ตฌ์„ฑ ์š”์†Œ ์ธ vi-panel์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค! ๊ทธ๋Ÿฌ๋‚˜ vi-dashboard๊ฐ€ ์›น ๊ตฌ์„ฑ ์š”์†Œ ์ธ ๊ฒฝ์šฐ ์ œ๋Œ€๋กœ ๋ Œ๋”๋ง๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค! ์ฝ˜์†”์— ์˜ค๋ฅ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค!

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

์ผ๋ฐ˜ ๊ทธ๋ฆฌ๋“œ ์Šคํƒ ๋ฐ๋ชจ๋กœ ์ œ๋Œ€๋กœ ๋ Œ๋”๋ง๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค!
Screen Shot 2020-11-03 at 3 06 16 PM

์‹ค์ œ ํ–‰๋™

๋ชจ๋“  ๊ฒƒ์ด ํ•œ ๊ณณ์— ์Œ“์—ฌ ์žˆ์Šต๋‹ˆ๋‹ค! ๋Œ์–ด์„œ ๋†“๊ธฐ ๋ฐ ํฌ๊ธฐ ์กฐ์ •๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค!

Screen Shot 2020-11-03 at 3 05 55 PM

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

3.1.2์—์„œ ์ˆ˜์ • ๋จ (3.1.1์€ ์ž˜๋ชป๋œ ๋””๋ฒ„๊ทธ ๊ธฐํ˜ธ ์ž„)

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

๋‚˜์—๊ฒŒ CSS ๋ฌธ์ œ์ฒ˜๋Ÿผ ๋ณด์ด๊ณ  id๊ฐ€ ๋™์ ์œผ๋กœ ์ƒ์„ฑ ํ•œ ๋ฌธ์ œ๋ฅผ ํ–‰ํ•ฉ๋‹ˆ๋‹ค ... GridStack.init({styleInHead: true},...) ์‹œ๋„ํ•˜๊ณ  ๊ทธ๊ฒƒ์ด ์ƒํ™ฉ์„ ๋ฐ”๊พธ๋Š” ์ง€ ํ™•์ธ ํ–ˆ์Šต๋‹ˆ๊นŒ? (๊ธฐ๋ณธ์ ์œผ๋กœ ๋™์ผํ•œ ๋ถ€๋ชจ์— ๊ทธ๋ฆฌ๋“œ ๋ฐ”๋กœ ์•ž์— CSS๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด _updateStyles() ๋กœ ๋“ค์–ด๊ฐ€์„œ CSS ํŒŒ์ผ์„ ์ƒ์„ฑ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ทธ๋ฆฌ๊ณ  ์–ด๋””๋กœ ๊ฐ€๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ์ผ€์ด์Šค๋ฅผ ๊ฒŒ์‹œํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ž‘์€ zip ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋””๋ฒ„๊ทธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ ์žฌํ˜„ : https://codepen.io/bhutiyakishan1/pen/bGeKvgM
๋ฒ„์ „์„ 2.0.0 ์ด์ƒ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฒ„๊ทธ๊ฐ€ ๋ณด์ž…๋‹ˆ๋‹ค! ์ง€๊ธˆ์€ 1.2.0์œผ๋กœ ์ œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค!
๋˜ํ•œ ๋‚˜๋Š” GridStack.init({styleInHead: true} ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†์Šต๋‹ˆ๋‹ค!

ํด๋ฆฌ๋จธ ํ”„๋กœ์ ํŠธ์—์„œ๋„์ด ๋ฌธ์ œ๋ฅผ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” v3 ์˜ˆ์ œ :

<html>
<head>
  <!-- Polyfills only needed for Firefox and Edge. -->
  <script src="https://unpkg.com/@webcomponents/webcomponentsjs@latest/webcomponents-loader.js"></script>
  <link rel="stylesheet" href="demo.css"/>
  <script src="../dist/gridstack-h5.js"></script>
</head>
<body>
  <script type="module">
    import {LitElement, html, css} from 'https://unpkg.com/lit-element/lit-element.js?module';

    class MyElement extends LitElement {
      static get properties() { return {} }
      render() {
        return html`<style>:host {display: block;} </style><slot></slot>`;
      }
    }
    customElements.define('my-element', MyElement);
</script>

<div class="grid-stack"></div>

<script type="text/javascript">
  let items = [
    {x:0, y:0, w:2, content: '0'},
    {x:0, y:1, content: '1'}
  ];
  let grid = GridStack.init();
  grid.load(items);
</script>
</body>
</html>

@ bhutiyakishan1 ์ด ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค ... ๋ถ„๋ช…ํžˆ ๊ทธ๋ฆฌ๋“œ์˜ ํฌ๊ธฐ๊ฐ€ 0์ด๊ณ  ํ•„์š”ํ•œ CSS๋ฅผ๋กœ๋“œ / ์ƒ์„ฑํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

  let grid = GridStack.init({disableOneColumnMode: true, cellHeight: 70});

์ฐธ๊ณ  : ์ฝ”๋“œ์—์„œ ์ด๊ฒƒ์ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…๊ณผ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค (์ธ๋ผ์ธ ๋ธ”๋ก์œผ๋กœ ๋ณ€๊ฒฝํ•ด๋„ ํฌ๊ธฐ๊ฐ€์—†๋Š” ๊ทธ๋ฆฌ๋“œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค).

render() { return html`<style>:host {display: block;} </style><slot></slot>`; }

3.1.2์—์„œ ์ˆ˜์ • ๋จ (3.1.1์€ ์ž˜๋ชป๋œ ๋””๋ฒ„๊ทธ ๊ธฐํ˜ธ ์ž„)

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ! ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

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