JqueryUI - Posizione

In questo capitolo vedremo uno dei metodi di utilità di jqueryUi, il metodo position () . Il metodo position () consente di posizionare un elemento rispetto a un altro elemento o evento del mouse.

jQuery UI estende il metodo .position () da jQuery core in un modo che ti consente di descrivere come vuoi posizionare un elemento nello stesso modo in cui lo descriveresti naturalmente a un'altra persona. Invece di lavorare con i numeri e la matematica, lavori con parole significative (come sinistra e destra) e relazioni.

Sintassi

Quanto segue è la sintassi del metodo position () :

.position( options )

Where options è di tipo Object e fornisce le informazioni che specificano come devono essere posizionati gli elementi dell'insieme avvolto. La tabella seguente elenca le diverse opzioni che possono essere utilizzate con questo metodo:

Sr.No. Opzione e descrizione
1 mio

Questa opzione specifica la posizione degli elementi avvolti (quelli che vengono riposizionati) per allinearsi con l'elemento o la posizione di destinazione. Per impostazione predefinita, il suo valore ècenter.

Option - my

Questa opzione specifica la posizione degli elementi avvolti (quelli che vengono riposizionati) per allinearsi con l'elemento o la posizione di destinazione. Per impostazione predefinita, il suo valore ècenter.

Due di questi valori vengono utilizzati per specificare la posizione: in alto, a sinistra, in basso, a destra e al centro , separati da uno spazio, dove il primo valore è ilhorizontal value, e il secondo il vertical. Se viene considerato il valore singolo specificatohorizontal o verticaldipende dal valore utilizzato (ad esempio, la parte superiore è considerata verticale, mentre la destra è orizzontale).

Example

top, or bottom right.
2 a

Questa opzione è di tipo String e specifica la posizione dell'elemento di destinazione rispetto al quale allineare gli elementi riposizionati. Accetta gli stessi valori dell'opzione my . Per impostazione predefinita, il suo valore ècenter.

Option - at

Questa opzione è di tipo String e specifica la posizione dell'elemento di destinazione rispetto al quale allineare gli elementi riposizionati. Accetta gli stessi valori dell'opzione my . Per impostazione predefinita, il suo valore ècenter.

Example

"right", or "left center"
3 di

È di tipo Selector o Element, jQuery o Event. Identifica l'elemento di destinazione rispetto al quale devono essere riposizionati gli elementi avvolti o un'istanza di Event contenente le coordinate del mouse da utilizzare come posizione di destinazione. Per impostazione predefinita, il suo valore ènull.

Option - of

È di tipo Selector o Element, jQuery o Event. Identifica l'elemento di destinazione rispetto al quale devono essere riposizionati gli elementi avvolti o un'istanza di Event contenente le coordinate del mouse da utilizzare come posizione di destinazione. Per impostazione predefinita, il suo valore ènull.

Example

#top-menu
4 collisione

Questa opzione è di tipo String e specifica le regole da applicare quando l'elemento posizionato si estende oltre la finestra in qualsiasi direzione. Per impostazione predefinita, il suo valore èflip.

Option - collision

Questa opzione è di tipo String e specifica le regole da applicare quando l'elemento posizionato si estende oltre la finestra in qualsiasi direzione. Per impostazione predefinita, il suo valore èflip.

Accetta due (orizzontale seguito da verticale) dei seguenti:

  • flip- Gira l'elemento sul lato opposto ed esegue nuovamente il rilevamento delle collisioni per adattarlo. Se nessuno dei due lati si adatta, il centro viene utilizzato come riserva.

  • fit - Mantiene l'elemento nella direzione desiderata, ma regola la posizione in modo che si adatti.

  • flipfit- Per prima cosa applica la logica di capovolgimento, posizionando l'elemento su qualsiasi lato che consenta di vedere più elementi. Quindi viene applicata la logica di adattamento per garantire che la maggior parte dell'elemento sia visibile possibile.

  • none - Disabilita il rilevamento delle collisioni.

Se viene specificato un singolo valore, si applica a entrambe le direzioni.

Example

"flip", "fit", "fit flip", "fit none"
5 utilizzando

Questa opzione è una funzione che sostituisce la funzione interna che cambia la posizione dell'elemento. Chiamato per ogni elemento avvolto con un singolo argomento costituito da un hash di oggetto con le proprietà left e top impostate sulla posizione di destinazione calcolata e l'elemento impostato come contesto della funzione. Per impostazione predefinita, il suo valore ènull.

Option - using

Questa opzione è una funzione che sostituisce la funzione interna che cambia la posizione dell'elemento. Chiamato per ogni elemento avvolto con un singolo argomento costituito da un hash di oggetto con le proprietà left e top impostate sulla posizione di destinazione calcolata e l'elemento impostato come contesto della funzione. Per impostazione predefinita, il suo valore ènull.

Example

{horizontal: "center", vertical: "left", important: "horizontal" }
6 entro

Questa opzione è un selettore, un elemento o un elemento jQuery e consente di specificare quale elemento utilizzare come riquadro di delimitazione per il rilevamento delle collisioni. Questo può tornare utile se devi contenere l'elemento posizionato all'interno di una sezione specifica della tua pagina. Per impostazione predefinita, il suo valore èwindow.

Option - within

Questa opzione è un selettore, un elemento o un elemento jQuery e consente di specificare quale elemento utilizzare come riquadro di delimitazione per il rilevamento delle collisioni. Questo può tornare utile se devi contenere l'elemento posizionato all'interno di una sezione specifica della tua pagina. Per impostazione predefinita, il suo valore èwindow.

Esempio

Il seguente esempio dimostra l'uso del metodo position .

<!doctype html>
<html lang = "en">
   <head>
      <meta charset = "utf-8">
      <title>jQuery UI position method Example</title>
      <link href = "https://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css"
         rel = "stylesheet">
      <script src = "https://code.jquery.com/jquery-1.10.2.js"></script>
      <script src = "https://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
      
      <!-- CSS -->
      <style>
         .positionDiv {
            position: absolute;
            width: 75px;
            height: 75px;
            background: #b9cd6d;
         }
         #targetElement {
            width: 300px;
            height: 500px;
            padding-top:50px;
         }
      </style>
      
      <script>
         $(function() {
            // Position the dialog offscreen to the left, but centered vertically
            $( "#position1" ).position({
               my: "center",
               at: "center",
               of: "#targetElement"
            });
            $( "#position2" ).position({
               my: "left top",
               at: "left top",
               of: "#targetElement"
            });
            $( "#position3" ).position({
               my: "right-10 top+10",
               at: "right top",
               of: "#targetElement"
            });
            $( document ).mousemove(function( event ) {
               $( "#position4" ).position({
                  my: "left+3 bottom-3",
                  of: event,
                  collision: "fit"
               });
            });
         });
      </script>
   </head>
   
   <body>
      <div id = "targetElement">
         <div class = "positionDiv" id = "position1">Box 1</div>
         <div class = "positionDiv" id = "position2">Box 2</div>
         <div class = "positionDiv" id = "position3">Box 3</div>
         <div class = "positionDiv" id = "position4">Box 4</div>
      </div>
   </body>
</html>

Salviamo il codice sopra in un file HTML positionmethodexample.htme aprilo in un browser standard che supporta javascript, devi anche vedere il seguente output. Ora puoi giocare con il risultato:

In questo esempio vediamo che:

  • Scatola 1 è allineato al centro (orizzontale e verticale) della dell'elemento div.

  • Scatola 2 è allineata in alto a sinistra (orizzontale e verticale) della dell'elemento div.

  • La casella 3 viene visualizzata nell'angolo in alto a destra della finestra, ma lascia un po 'di spaziatura interna in modo che il messaggio risalti di più. Questo viene fatto usando i valori orizzontali e verticali di my o at .

  • Per il riquadro 4 , il valore of è impostato come oggetto evento. Questo è un evento associato a un puntatore e si sposta con l'evento del mouse.