Я поразмышлял над некоторыми обходными способами сделать gridster.js отзывчивым. Я нашел фрагмент кода в проблемах github в gridster и понял, что если я запустил его с определенным размером окна, а затем уничтожил и повторно запустил gridster, я могу получить эффект отклика gridster. Позвольте мне показать вам, что я имею в виду -
$(window).resize(function(){
var width = $(window).width();
var columns = "";
if(Modernizr.mq('screen and (max-width:640px)')){
columns = 1;
gridster.destroy();
var tooFar = $('.gridster .gs-w').filter(function () {
return $(this).data('col') > columns;
});
$(tooFar).each(function () {
$(this).attr('data-col', '1');
});
var tooBig = $('.gridster li').filter(function () {
return $(this).data('sizex') > columns;
});
$(tooBig).each(function () {
$(this).attr('data-sizex', columns);
});
$(".gridster ul").gridster({
widget_base_dimensions: [300, 300],
widget_margins: [5, 5],
max_cols: 1,
resize: {
enabled: true
},
draggable: {
handle: '.dragDiv'
},
serialize_params: function ($w, wgd) {
return {
/* add element ID to data*/
id: $w.attr('id'),
/* defaults */
col: wgd.col,
row: wgd.row,
size_x: wgd.size_x,
size_y: wgd.size_y,
/* htmlContent: $($w).html() */
}
}
}).data('gridster');
}
});
Поэтому, когда гридстер должен разбиться на 1 столбец (у него основание равно 4), он уничтожает и повторно запускается с 1 столбцом. Это работает на удивление хорошо, проблема в том, что это не самый лучший способ добиться этого. Я также не показываю все точки останова (он разбивается на столбцы 3-2-1 в зависимости от размера окна). Он работает очень плохо, потому что срабатывает при каждом изменении размера окна, и мне интересно, есть ли более чистый способ сделать это, когда функции будут срабатывать только один раз, когда они достигают размера окна.
Кроме того, это только для уменьшения размера gridster вниз, поэтому, если вы уменьшите размер, он не будет расширяться, я еще не пробовал создавать эти функции.
Любые указатели или предложения по использованию чего-то, что, возможно, не слушает каждый отдельный экземпляр изменения размера окна, были бы очень полезны.
Спасибо!!