오버 플로우 -y를 적용하는 긴 중첩 목록이 있습니다 : 자동, 각 요소에는 정렬 가능한 위젯이 첨부되어 있습니다.정렬 가능한 드래그 가능한 요소가 스크롤 바깥에서 벗어납니다.
지금 우리가 직면 한 문제는 드래그 게이블 요소가 바람직하지 않은 스크롤 막대 컨테이너에서 나간다는 것입니다. 위치가 절대로 설정되고 Z- 인덱스가 1000으로 설정되어 있고 또한 이해합니다. 요소를 드래그하는 동안 상위 요소의 높이를 고려하면 계산 된 높이까지 끌어 올 수 있습니다.
위치를 상대 위치로 변경하면 스크롤 막대 내부에서만 요소를 드래그 할 수 있지만 드래그하여 너무 커서 드래그 할 수있게됩니다.
원하는 동작 : 요소를 스크롤 막대 내부로 드래그 할 수 있어야하며 마지막 요소의 아래쪽 옵셋 위치를 벗어나지 않아야합니다.
다음 코드의 단편이다 :
$(".sortableList").sortable({
axis: 'y',
containment: 'parent',
tolerance: 'pointer',
distance: 5,
start: function (event, ui) {
$(ui.item).find('#contain').hide(10, 'swing');
$(ui.item).addClass('setHeight');
ui.placeholder.height(ui.item.height());
$(".sortableList").sortable('refresh');
},
stop: function (event, ui) {
$('#contain').show(10, 'swing');
$(ui.item).removeClass('setHeight');
}
을}); 이 문제에 대한
JS 바이올린 링크는 다음과 같습니다 http://jsfiddle.net/tj_vantoll/hK7YT/3/ : http://jsfiddle.net/hK7YT/2/
주어진 솔루션이 우리를 위해 작동하지 않습니다. 그렇게하면 선택한 항목이 공유 된 바이올린 데모에서 발생하는 실제 위치에서 벗어납니다. 또한 노드의 수 N을 갖기 때문에 높이를 제공하라는 제안은 나에게 불가능합니다. 그것은 동적입니다. –