7

Quindi ho un div droppable fisso in basso a destra dello schermo. Ho una lista di oggetti trascinabili che possono essere trascinati nel cestino (il droppable fisso) ma non voglio che la barra di scorrimento orizzontale appaia quando li trascini vicino al cestino. Non voglio che i draggables siano in grado di scorrere orizzontalmente. Ci sono altri droppable più in basso nella pagina in cui possono essere lasciati cadere in modo che debbano scorrere verticalmente per raggiungerli.Solo scorrimento verticale jquery-ui

Ecco un jsfiddle del problema.

Grazie

risposta

9

È possibile utilizzare l'opzione containment (doc) sugli elementi trascinabili. In questo modo è possibile limitare il loro movimento nell'elemento BODY:

$('.draggable').draggable({ 
    ... 
    containment: 'body', 
    ... 
}); 

DEMO

+0

Ma non riesco a trascinarlo verso i droppabili. –

+0

Certo che puoi (o non ho esattamente il problema). Il corpo continuerà a scorrere il suo viewport ma non si estenderà se il cursore si sposterà troppo in basso o a destra. –

+0

Il problema ora è che il corpo non va fino in fondo. –

28

Al fine di consentire solo trascinamento verticale, è necessario impostare la proprietà "Asse" della trascinabile in questo modo:

$("selector").draggable({ 
    axis: "y" 
}); 

E se si dispone già di un oggetto trascinabili inizializzato, è necessario impostare in questo modo:

$("selector").draggable("option", "axis", "y"); 
+0

Questo non è quello che intendevo. Volevo solo che "scorresse" verticalmente e potesse spostarsi orizzontalmente. La domanda ha già avuto risposta, ma grazie per la risposta però. –

+3

questa era proprio la cosa che stavo cercando – prototype

+0

Ho cercato anche questo. Grazie – softnayr