Π― ΠΏΡΡΠ°ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΡ ΡΡΠ΅ΠΉΠΊΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠΊΠ½Π°. Π― Ρ
ΠΎΡΠ΅Π» Π±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΠΊΡ 20 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π½Π° 20 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ»Π°Π²Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ Π²Π²Π΅ΡΡ
ΠΈ Π²Π½ΠΈΠ· Ρ ΡΠ°Π³ΠΎΠΌ 20 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ. Π― ΠΌΠΎΠ³Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π²ΡΡΠΎΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π² cellHeight: 20
, Π½ΠΎ ΡΠΈΡΠΈΠ½Π°, ΠΏΠΎΡ
ΠΎΠΆΠ΅, Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ
ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠΎΡ ΡΡΠΎ Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Ρ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
var options = {
float: true,
width: 53,
acceptWidgets: '.grid-stack-item',
cellHeight: 20,
verticalMargin: 0,
disableResize: true,
alwaysShowResizeHandle: false
};
$('#grid-1').gridstack(options);
Π― ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» cellWidth: 20
, Π½ΠΎ, ΠΏΠΎΡ
ΠΎΠΆΠ΅, ΡΡΠΎ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. Π― ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΡΠΊΡΠΈΠΏΡ scss, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π»ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ px Π²ΠΌΠ΅ΡΡΠΎ%.
.grid-stack > .grid-stack-item {
$gridstack-columns: 60;
<strong i="11">@for</strong> $i from 1 through $gridstack-columns {
&[data-gs-width='#{$i}'] { width: $i * 20px; }
&[data-gs-x='#{$i}'] { left: $i * 20px; }
}
}
ΠΡΠΎ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ΅ΡΠΊΠΈ ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ ΡΠ΅ΡΠΊΠΈ 20 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, Π½ΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠ»Π°Π²Π½ΡΠΌ. ΠΡΡΡ Π»ΠΈ ΡΡΠΎ-ΡΠΎ Π΅ΡΠ΅, ΡΡΠΎ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠΊΡΠΈΠΏΡ .scss Π΄Π»Ρ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Π½ΠΈΡ ΠΊΠ°ΡΡ ΠΏΠΎ ΡΠΈΡΠΈΠ½Π΅ ΡΠ΅ΡΠΊΠΈ? ΠΠ»ΠΈ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠ΅ Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° width
ΠΈΠ»ΠΈ cellWidth
? Π₯ΠΎΡΡ ΡΠΉΡΠΈ ΠΎΡ ΠΊΠ°ΠΊΠΈΡ
-Π»ΠΈΠ±ΠΎ ΡΠ°ΡΡΠ΅ΡΠΎΠ²% :)
@cblokker ΠΡ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ
ΠΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠ΅Π½Ρ ΠΎΠ³ΠΎΡΡΠ°Π΅Ρ:
GridStack.prototype.cellWidth = function() {
return Math.round(this.container.outerWidth() / this.opts.width);
};
Π ΡΠ»ΡΡΠ°Π΅ ΡΠΈΡΠΈΠ½Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ css, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π±ΡΡ Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ , ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π»Π° ΡΠΎΠ»ΡΠΊΠΎ this.opts.width.
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠΌΠ΅Π½ΠΈΡ Π² gridstack, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ (% ΠΈΠ»ΠΈ px), ΠΈΠ»ΠΈ ΠΈΠΌΠ΅ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ.
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ: ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ. Π― ΠΈΠ³ΡΠ°Ρ Ρ ΡΡΠΈΠΌ ΡΠ΅ΠΉΡΠ°Ρ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ.
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ 2: ΠΌΠΎΠ΅ 5-ΠΌΠΈΠ½ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅. Π£ Π½Π΅Π³ΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π΅ΡΠ΅ Π½Π΅Ρ ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
Diff: ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°-ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΈΡΠΈΠ½Π°
ΠΠ½Π΅ Π±Ρ ΡΡΠΎ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠΎΠΌ ΡΠ΅ΡΠΎΠΊ Π½Π° ΡΠΊΡΠ°Π½Π°Ρ 4k, ΠΈΠ½ΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ° Π±ΡΠ»Π° ΡΠΈΡΠΎΠΊΠΎΠΉ, ΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π½ΠΎΠ²ΡΡ ΡΠ΅ΡΠΊΡ, Π³Π΄Π΅ ΡΠ°Π·ΠΌΠ΅ΡΡ Π±ΡΠ΄ΡΡ Π² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΡΠΌΠ΅Π½ΡΡΠ΅Π½Ρ Π²Π΄Π²ΠΎΠ΅, Π° Π·Π°ΡΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΠ° Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΠΈΡΠΈΠ½Π° ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ·ΠΊΠ°Ρ.
ΠΠ½Π΅ ΡΠΎΠΆΠ΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ, ΡΡΠΎΠ±Ρ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»Π°ΡΡ gridstack.
Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΈ Π·Π΄Π΅ΡΡ, Ρ Π±Ρ Ρ ΠΎΡΠ΅Π» ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ Π² ΡΡΠ΅ΠΊΠ΅ ΡΠ΅ΡΠΊΠΈ.
Π’Π΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Ρ ΡΠΌΠΎΠ³ Π²Π·Π»ΠΎΠΌΠ°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ (ΠΎΠ΄Π½Π° ΡΡΡΠΎΠΊΠ°, disabledOneColumnMode, height = 1)
Π§ΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π²ΡΠ΅ ΠΏΠ»ΠΈΡΠΊΠΈ ΡΠΈΡΠΈΠ½ΠΎΠΉ 100 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ (Π²ΡΠ΅ ΠΌΠΎΠΈ ΠΏΠ»ΠΈΡΠΊΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠΈΡΠΈΠ½Ρ = 1, ΡΡΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠΉ ΡΠΈΡΠΈΠ½Ρ):
Π CSS
$tile-width: 100px; /*100px*/
.grid-stack-item[data-gs-width="1"] { width: $tile-width; min-width: $tile-width; max-width: $tile-width; }
.grid-stack-item {
<strong i="9">@for</strong> $i from 1 through 20 {
&[data-gs-x='#{$i}'] { left: $i * $tile-width; }
}
}
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ:
const width = $('.grid-stack').outerWidth();
this.grid = $('.grid-stack').gridstack({
auto: false,
cellHeight: 80,
disableResize: true,
verticalMargin: 0,
width: Math.round(width/100),
height: 1,
disableOneColumnMode: true
}).data('gridstack');
Π‘Π±ΡΠΎΡΠΈΡΡ ΡΠΈΡΠΈΠ½Ρ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°
resizeHandler() {
const width = $('.grid-stack').outerWidth();
const grid = $('.grid-stack').data('gridstack');
grid.setGridWidth(Math.round(width/100), true);
}
Π₯Π°ΠΊΠ΅ΡΡΡΠ²ΠΎ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄Π»Ρ cellWidth Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 100 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ (ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π² CSS), ΡΠ΅Π³ΡΠ»ΠΈΡΡΡ ΡΠΈΡΠΈΠ½Ρ (ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ²) Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠΈΡΠΈΠ½Ρ ΡΠ΅ΡΠΊΠΈ (ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ).
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄Π»Ρ cellHeight
Π²ΡΠ΅, ΡΡΠΎ Π·Π°Ρ
ΠΎΡΠΈΡΠ΅, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Javascript Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² gridstack. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π»ΡΠ±ΠΎΠ΅ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ
ΠΎΡΠΈΡΠ΅, ΠΈ Π΄Π°ΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΡ Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ
.