jquery draggable: jak ograniczyć obszar draggable?
Mam obiekt przeciągalny (div) I kilka upuszczalnych (table TD). Chcę, aby użytkownik przeciągnął mój obiekt przeciągalny do jednego z tych droppable TD.
Włączam przeciąganie i upuszczanie w ten sposób:
$(".draggable").draggable();
$(".droppable").droppable();
Problem polega na tym, że dzięki temu użytkownik może przeciągnąć div w dowolne miejsce na ekranie, w tym poza obszar, który można upuszczać.
Jak mogę ograniczyć obszar graniczny dla przeciąganego obiektu?
5 answers
Użyj opcji "przechowalnia":
JQuery UI API-Draggable Widget-containment
Dokumentacja mówi, że akceptuje tylko wartości: 'parent'
, 'document'
, 'window'
, [x1, y1, x2, y2]
ale wydaje mi się, że będzie akceptować selektor, taki jak '#container' zbyt.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-06 13:12:47
$(function() { $( "#draggable" ).draggable({ containment: "window" }); });
Tego kodu nie wyświetla. Pełny kod i Demo: http://www.limitsizbilgi.com/div-tasima-surukle-birak-div-drag-and-drop-jquery.html
W celu ograniczenia elementu wewnątrz jego rodzica:
$( "#draggable" ).draggable({ containment: "window" });
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-03 13:13:33
Oto przykład kodu do naśladowania. # thumbnail jest rodzicem DIV dla # handle DIV
buildDraggable = function() {
$( "#handle" ).draggable({
containment: '#thumbnail',
drag: function(event) {
var top = $(this).position().top;
var left = $(this).position().left;
ICZoom.panImage(top, left);
},
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-29 20:53:14
Zobacz fragment oficjalnej dokumentacji dla containment
opcja :
Zabezpieczenie
Default:
false
Ograniczenia element lub region.
obsługa wielu typów:
- Selektor: przeciągalny element zostanie umieszczony w obwiedni pierwszego elementu znalezionego przez selektor. Jeśli żaden element nie zostanie znaleziony, żadne zabezpieczenie nie zostanie gotowi.
- Element: przeciągalny element będzie zawarty w obwiedni tego elementu.
- String : Możliwe wartości:
"parent"
,"document"
,"window"
.- Array : tablica definiująca obwiednię w postaci
[ x1, y1, x2, y2 ]
.Przykłady kodu:
Zainicjalizuj przeciąganie za pomocą opcjicontainment
podanej:$( ".selector" ).draggable({ containment: "parent" });
Get or set the
containment
option, after initialization:// Getter var containment = $( ".selector" ).draggable( "option", "containment" ); // Setter $( ".selector" ).draggable( "option", "containment", "parent" );
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-06 13:24:03
$(function () {
$( ".droppable-area" ).sortable({
connectWith: ".connected-sortable",
containment: ".droppable-area", //(parent div)
stack: '.connected-sortable div'
}).disableSelection();
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-05 17:53:05