I'我对jquery-ui-resizable有问题.我想在4个相等的间隔内减小和增加宽度

I'm having and issue with jquery ui resizable. I want to decrease and increase width in 4 equals intervals

本文关键字:增加 我对 jquery-ui-resizable 有问题 4个      更新时间:2023-09-26

我在调整jquery大小时遇到问题。这就是plunkr代码。我想在可丢弃页面的4个相等间隔中增加和减少丢弃元素的宽度。我正在尝试使用if-else条件来获得此功能,但我无法做到。我是jquery的新手,如果有任何帮助,我将不胜感激。http://plnkr.co/edit/E9SRGrLIfKOWiLg4BYeS?p=preview

$(document).ready(function() {
    $(function() {
        $("ul li").each(function() {
            $(this).draggable({
                helper: "clone",
                revert: "invalid"
            });
        });
        $(".day").droppable({
            accept: ":not(.ui-sortable-helper)",
            drop: function(event, ui) {
                var padLeft, padRight, padTotal;
                $(ui.draggable).clone().find('#drag').resizable({
                    minWidth: 60,
                    ghost: true,
                    handles: 'e',
                    resize: function(event, ui) {
                        debugger;
                        ui.size.width = ui.size.width + 200;
                        if (ui.size.width > 800) {
                            ui.size.width = 800;
                        }
                        if (ui.size.height < 90) {
                            ui.size.height = 90;
                        }
                        if (ui.size.width < 400 && ui.size.width > 204) {
                            ui.size.width = 200;
                        }
                    },
                    start: function(event, ui) {},
                    stop: function(event, ui) {}
                }).appendTo(this);
            }
        }).sortable({
            placeholder: "ui-state-highlight"
        });
    });
});

因此,从代码中可以看出,您的宽度为200px,高度为90px,并且您希望在它们被丢弃后能够调整它们的宽度,但只能以200的倍数调整,直到它们达到最大宽度800。为此,可以使用minWidthmaxWidthgrid选项。

$(ui.draggable).clone().find('#drag').resizable({
    minWidth: 200,
    maxWidth: 800,
    ghost: true,
    handles: 'e',
    grid: [200, 90],
    start: function(event, ui) {
    },
    stop: function(event, ui) {
    }
});

最大值和最小值可能很明显,但您可以在此处阅读更多关于grid选项的信息:

http://api.jqueryui.com/resizable/#option-网格

每隔x和y像素将调整大小的元素捕捉到栅格。大堆值:[x,y]。

此外,我还看到您的HTML中有多个具有相同id drag的div。ID应该是唯一的,仅供将来参考。相反,给它们唯一的ID和一个公共类,并在find中使用该类。

HTML:

<ul id="sortable">
    <li class="input">
        <div style="background-color:darksalmon" class="draggableItem" id="drag1">Input</div>
    </li>
    <li>
        <div style="background-color:moccasin;" class="draggableItem" id="drag2">Textarea</div>
    </li>
    <li class="dropdown">
        <div style="background-color:saddlebrown;" class="draggableItem" id="drag3">Dropdown</div>
    </li>
    <li class="checkbox">
        <div style="background-color:plum" class="draggableItem" id="drag4">checkbox</div>
    </li>
</ul>

JS:

$(ui.draggable).clone().find('.draggableItem').resizable({