jQuery Draggable - я не могу изменить размер div во время перетаскивания? - PullRequest
0 голосов
/ 28 декабря 2011

У меня этот код:

HTML

<div class="draggable_container">
    <div id="draggable_1" class="draggable">
        <div class="exp"><!-- --></div>
    </div>
</div>

CSS

.draggable_container
{
    height:300px;
    background-color:red;
    width:140px;
}

.draggable
{
    height:132px;
    width:130px;
    cursor:pointer;
    border:5px solid #000000;
    background-color:#ffffff;
}

JQuery

$(".draggable").draggable({
    axis: "y",
    containment: 'parent',
    drag: function(event, ui) {
        draggedElement = $(ui.helper.context);
        distanzaTop = draggedElement.css('top').substring(0, (draggedElement.css('top').length - 2));

        if (distanzaTop < 20) {
            draggedElement.css('height', '132px');

        } else if (distanzaTop >= 20 && distanzaTop < 80) {
            draggedElement.css('height', '120px');

        } else if (distanzaTop >= 80 && distanzaTop < 140) {
            draggedElement.css('height', '86px');

        } else if (distanzaTop >= 140 && distanzaTop < 200) {
            draggedElement.css('height', '68px');

        } else if (distanzaTop >= 200) {
            draggedElement.css('height', '60px');
        }
    }    
});

Итак, я переместил прокручиваемый div с помощью мыши вверх / вниз. Проблема в том (как вы можете видеть), что я не могу пойти ко дну одним движением. Во время пути div блокируется ... и мне нужно выбрать его и снова переместиться вниз.

Любопытно: снизу вверх работает отлично; сверху вниз он заблокирует ...

Почему? И как я могу исправить эту проблему?

1 Ответ

0 голосов
/ 28 декабря 2011

Необходимо изменить условия, начиная с наибольшего значения (200), до наименьшего:

if (distanzaTop < 20) {
    draggedElement.css('height', '132px');
} else if (distanzaTop >= 200) {
    draggedElement.css('height', '60px');
} else if (distanzaTop >= 140 && distanzaTop < 200) {
draggedElement.css('height', '68px');
} else if (distanzaTop >= 80 && distanzaTop < 140) {
draggedElement.css('height', '86px');
} else if (distanzaTop >= 20 && distanzaTop < 80) {
    draggedElement.css('height', '120px');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...