Можно ли ограничить изменение размера jQuery по оси x или y, как ограничение перетаскивания? - PullRequest
8 голосов
/ 12 мая 2010

Этот jQuery позволяет вам ограничить движение перетаскивания, чтобы оно происходило только на указанной оси:

$("#draggable2").draggable({ axis: 'x' });

См .: http://jqueryui.com/demos/draggable/#constrain-movement

Это не разрешено jQuery, но я бы хотел, чтобы это было:

$("#Container").resizable({ minHeight: 150, containment: {axis:'y' } });

Можно ли запретить пользователю расширять #Container, в то же время позволяя ему сделать его выше?

Спасибо

Ответы [ 4 ]

28 голосов
/ 24 января 2012

Оба эти ответа работают, но, к сожалению, они приводят к появлению курсора <-> над восточной границей, заставляя пользователя думать, что он может изменить размер ширины. Я считаю, что лучше всего подойти к вызову этого объекта jQuery:

.resizable({handles:'s'})

, поскольку это просто устранит возможность изменения ширины и курсора.

26 голосов
/ 30 октября 2010

Да, это возможно с помощью событий пользовательского интерфейса. Вдоль оси х:

$("#Container").resizable({
    resize: function(event, ui) {
        ui.size.width = ui.originalSize.width;
    }
});

или вдоль оси y:

$("#Container").resizable({
    resize: function(event, ui) {
        ui.size.height = ui.originalSize.height;
    }
});
3 голосов
/ 26 апреля 2013

Я обнаружил, что просто очистка встроенного стиля высоты или ширины объекта при изменении размера также работает. Он также имеет дополнительное преимущество: он не привязан к исходным размерам объекта (поскольку они могут изменяться в зависимости от содержимого)

$("#Container").resizable({
    resize: function(event, ui) {
        $(this).css('height','');
    }
});
2 голосов
/ 12 мая 2010

Я вижу два способа сделать это лучше одного. Сначала лучший:

1) Установите minWidth и maxWidth на одно и то же значение (а именно значение, которое вы хотите, чтобы ширина оставалась).

$('#theThing').resizable({ minWidth = 200, maxWidth = 200 });

2) Создайте родительский элемент с фиксированной шириной и сделайте его сдерживающим. Я не знаю, как это будет работать на высоте, но по умолчанию div без указания высоты увеличивается, если его содержимое работает, поэтому оно может работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...