var sortableLists = new Sortables( sortableListsArray, {
snap: 10 // 이 드래그 목록을 드래그하려면 사용자가 10px를 드래그해야 합니다
});
정렬 가능한 이벤트
정렬 가능한 이벤트는 매우 훌륭하고 사용하기 매우 간단합니다. 각 요소에는 현재 드래그된 요소가 전달됩니다(콜론 요소를 사용한 경우 복제된 요소가 아닌 원래 요소).
onStart - 드래그가 시작될 때 트리거됨(스냅 트리거 이후)
onSort - 항목 순서가 변경될 때 트리거됨
onComplete - 요소를 드롭할 때 트리거됨
이러한 이벤트에 대해서는 나중에 자세히 살펴보겠습니다. 이후 예제에서 효과를 확인할 수 있습니다.)
정렬 방법
여러 가지 방법을 사용해 보았지만 이에 대해 자세히 이야기한 적은 없습니다. 메소드는 본질적으로 함수이지만 특정 클래스에 속합니다. 하지만 수업에 관해 이야기할 때 우리는 두 번째로 일반적인 개념을 정립하게 됩니다. 이 플러그인(우리가 이야기한 다른 플러그인과 마찬가지로)은 모두 비슷한 패턴을 따릅니다. "new"로 플러그인을 초기화하고, 하나 이상의 선택기 매개변수를 정의하고, 옵션을 정의하고, 일부 이벤트를 추가합니다. 새 정렬 가능 항목은 트윈과 유사합니다. ). 이 패턴은 클래스의 기본입니다. 가장 기본적으로 클래스를 사용하면 일부 옵션과 기능을 재사용할 수 있도록 저장할 수 있습니다. 메소드는 클래스의 특정 함수입니다. 인스턴스의 .set() 및 .get() 메소드는 요소의 속성 확장 메소드입니다. Fx.Tween에서 .start()는 메서드입니다. 보다 명확한 이해를 위해 정렬 가능한 방법을 살펴보겠습니다.
.detach();
.detach() 메소드를 사용하면 모든 컨트롤러를 분리하여 전체 목록을 드래그할 수 없게 만들 수 있습니다. 이는 드래그를 비활성화하는 데 유용합니다.
.attach();
이 메서드는 컨트롤러를 정렬 항목에 연결하며 .detach() 메서드를 사용한 후 정렬 기능을 다시 시작할 수 있습니다.
.addItems();
이 메소드를 사용하면 정렬된 목록에 새 항목을 추가할 수 있습니다. 이것이 의미하는 바는 사용자가 새 항목을 추가할 수 있는 정렬된 목록이 있고 새 항목을 추가한 후에는 해당 새 항목에 대한 정렬 기능을 활성화해야 한다는 것입니다.
.removeItems();
이 메소드를 사용하면 기존 정렬 목록에서 일부 요소를 제거할 수 있습니다. 이는 정렬에 참여하지 않도록 정렬된 목록의 일부 특수 항목을 잠가야 할 때 유용합니다.
.addLists();
기존 정렬 목록에 새 항목을 추가하는 것 외에도 정렬 목록에 새 목록을 추가할 수도 있습니다. .addLists(); 메서드를 사용하면 여러 목록을 추가할 수 있으므로 여러 정렬 개체를 쉽게 추가할 수 있습니다.
.removeLists();
을 사용하면 정렬된 개체에서 전체 목록을 제거할 수 있습니다. 이는 일부 특수 목록을 잠가야 할 때 유용합니다. 목록을 제거하면 나머지 항목은 계속 정렬되지만 제거된 목록은 잠깁니다.
.serialize();
이 정렬 기능은 매우 좋은데, 이 데이터를 처리하고 싶다면 어떻게 해야 할까요? .serialize(); 메서드는 이러한 항목 ID를 순서대로 포함하는 배열을 반환합니다. 인덱스 값으로 데이터를 가져오고 싶은 목록을 선택할 수 있습니다.
메서드의 영향은 여기서 다룰 수 있는 것 이상입니다. 이 내용을 처음 접하는 경우 개념에 대한 간단한 소개로 삼고 이후 튜토리얼에서 메서드와 클래스에 대해 더 자세히 논의하겠습니다.
코드 예시
다음 예시에서는 위에 설명된 일부 옵션, 모든 이벤트 및 모든 메서드를 사용합니다. 이 코드가 설명이 적고 설명이 더 많아 자명하기를 바랍니다. 아래의 모든 내용은 domready 이벤트 내에 있어야 한다는 점을 기억하세요.
참조 코드:
var sortableListsArray = $$('#numberlist, #letterlist');
var sortableLists = new Sortables(sortableListsArray, {
// 이동할 때 마우스 움직임을 따라가도록 복사합니다.
clone: true,
// 드래그 컨트롤러의 CSS 클래스 이름을 정의합니다(handle, handler)
handle: '.handle',
// 이후 특수 효과를 사용할 수 있습니다. 드래그 특정 위치로 다시 가져오기
되돌리기: {
// Fx 옵션 허용
기간: 50
},
// 마우스를 따라가는 대신 드래그된 요소의 불투명도 결정 복사
불투명도: .5,
onStart: function(el){
// 전달되는 것은 드래그하는 요소입니다
$('start_ind').highlight('#F3F865') ;
el.highlight('#F3F865');
},
onSort: function(el) {
// 전달되는 요소는 드래그하는 요소입니다.
$('sort_ind ').highlight('#F3F865');
},
onComplete: function(el) {
// 전달되는 것은 드래그하는 요소
$('complete_ind')입니다. 하이라이트('#F3F865');
var listOne = sortableLists.serialize(0);
var listTwo = sortableLists.serialize(1)
$('numberOrder').set('text', listOne).highlight('#F3F865');
$('letterOrder').set('text', listTwo).highlight('#F3F865') ; detach(); // 버튼을 클릭하여 드래그할 수 있도록 컨트롤러를 비활성화합니다.
var addListoSort = $('addListTest')
$('addListButton').addEvent('click', function (){
sortableLists.addLists(addListoSort);
})
$('removeListButton').addEvent('click', function(){
sortableLists.removeLists(addListoSort);
});
$('enable_handles').addEvent('click', function(){
sortableLists.attach();
})
$('disable_handles') . addEvent('click', function(){
sortableLists.detach();
})
var itemOne = $('one')
$('add_item').addEvent( 'click', function(){
sortableLists.addItems(itemOne);
})
$('remove_item').addEvent('click', function(){
sortableLists.removeItems (itemOne)
});
컨트롤러는 기본적으로 활성화되어 있지 않습니다(위 코드를 주의 깊게 살펴보세요). 드래그 정렬을 시작하려면 "정렬 활성화" 버튼을 클릭해야 합니다.
자세히 알아보기
문서
에서 정렬 가능에 대한 섹션을 참조하세요.
시작하는 데 필요한 모든 것이 포함된 zip 패키지를 다운로드하세요.
MooTools 1.2의 핵심 라이브러리와 확장(추가) 라이브러리, 위의 예, 외부 JavaScript 파일, 간단한 HTML 페이지 및 CSS 파일이 포함됩니다.