jquery - 设置每个 gridster.js 小部件的最小宽度和高度

标签 jquery jquery-ui gridster

我将 gridster.js 与 Jquery UI 结合使用,通过使用此位进行拖动来调整其大小:

$('.layout_block').resizable({
    grid: [grid_size + (grid_margin * 2), grid_size + (grid_margin * 2)],
    animate: false,
    minWidth: grid_size,
    minHeight: grid_size,
    containment: '#layouts_grid ul',
    autoHide: true,
    stop: function(event, ui) {
        var resized = $(this);
        setTimeout(function() {
            resizeBlock(resized);
        }, 300);
    }
});

$('.ui-resizable-handle').hover(function() {
    layout.disable();
}, function() {

    layout.enable();
});

function resizeBlock(elmObj) {

    var elmObj = $(elmObj);
    var w = elmObj.width() - grid_size;
    var h = elmObj.height() - grid_size;

    for (var grid_w = 1; w > 0; w -= (grid_size + (grid_margin * 2))) {

        grid_w++;
    }

    for (var grid_h = 1; h > 0; h -= (grid_size + (grid_margin * 2))) {

        grid_h++;
    }

    layout.resize_widget(elmObj, grid_w, grid_h);
}

按照 GitHub 上的建议:

http://jsfiddle.net/maxgalbu/UfyjW/

我需要为每个小部件指定最小宽度和高度,而不是为 gridster 一般指定。

有没有明显的方法来实现此功能?

谢谢

最佳答案

如果它对任何人有帮助,我解决了一个解决方案:

为每个小部件添加了数据属性以指定最小 X 和 Y:

data-minx="2" data-miny="2" 

然后重写resize函数:

$('.layout_block').resizable({
    grid: [grid_size + (grid_margin * 2), grid_size + (grid_margin * 2)],
    animate: false,
    containment: '#layouts_grid ul',
    autoHide: true,
    start: function(event, ui) {
        var resized = $(this);
        $('.layout_block').resizable( "option", "minWidth", resized.data('minx') * grid_size );
        $('.layout_block').resizable( "option", "minHeight", resized.data('miny') * grid_size );
    },
    stop: function(event, ui) {
        var resized = $(this);
        setTimeout(function() {
            resizeBlock(resized);   
        }, 300);
    }
});

我没有设置最小高度和宽度,而是在可调整大小的开始处运行函数

获取 minx 和 miny 属性并相应地调整参数以调整大小。

关于jquery - 设置每个 gridster.js 小部件的最小宽度和高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13549664/

相关文章:

javascript - ng-model 值中的 AngularJS 日期未传递给 Controller

javascript - 我如何使用 ScrollSpy?

Jquery ui 选项卡 - 为什么 ui 选项卡由 'li' 标签包裹?

css - 使文本在 Gridster 的框中垂直对齐不起作用

jquery - 如何通过动态创建的 id 从 gridster.js 中删除单个小部件

javascript - 为什么我无法使用 jQuery.parseJSON(json) 解析 json 字符串?

javascript - 将mysql数据放入var数组中

jQuery UI Draggable - 如果元素被拖动

jquery - 隐藏与用户输入不匹配的元素

javascript - Gridster,当小部件的宽度大于网格宽度时不会渲染