Domanda

Ho un pannello YUI trascinabile definito in questo modo

new YAHOO.widget.Panel("parameters", {
                        fixedcenter: true,
                        constraintoviewport: true,
                        underlay: "shadow",
                        visible: false,
                        close: true,
                        draggable: true,
                        width: "350px" });

Quando viene visualizzato il pannello, voglio che rimanga sempre visibile, anche quando si scorre la finestra. Questo è anche il caso, grazie a fixedcenter: true . Il problema è che quando si scorre la finestra il pannello si posiziona al centro della finestra anche se è stato trascinato da qualche altra parte in precedenza.

Come devo modificare la definizione di cui sopra in modo che la posizione del pannello rimanga costante rispetto alla finestra quando si scorre la finestra?

È stato utile?

Soluzione

Avvolgi il contenitore del pannello in un elemento wrapper con posizionamento fisso, ad esempio

<div id="wrapper" style="position: fixed">
    <div id="parameters">
        <div class="hd">Header</div>
        <div class="bd">Hello, this is my awesome panel.</div>
        <div class="ft">Footer</div>
    </div>
</div>

Costruisci il tuo pannello senza la proprietà di configurazione fixedcenter e centra il pannello immediatamente dopo il rendering, ad esempio

var panel = new YAHOO.widget.Panel("parameters", {
        constraintoviewport: true,
        underlay: "shadow",
        visible: false,
        close: true,
        draggable: true,
        width: "350px"
    });
panel.render();
panel.center();

Il pannello dovrebbe ora rimanere nella stessa posizione quando si scorre la finestra. Ho provato questo solo in Firefox 3.0 e Internet Explorer 7 e 8.

Ho pubblicato la fonte di un esempio autonomo che dimostrerà questo funzionamento.

Altri suggerimenti

Come da documentazione, impostare fixedcenter su:

  

" contenuto " per abilitare il posizionamento centrale fisso, come nel caso del vero   opzione. Tuttavia, diversamente dall'impostazione della proprietà su true, quando   la proprietà è impostata su "contenuto", se l'overlay è troppo grande per   viewport, non verrà centrato automaticamente quando l'utente scorre   o ridimensiona la finestra (fino a quando la finestra non è abbastanza grande da contenere il file   overlay). Ciò è utile nei casi in cui l'overlay ha entrambe le intestazioni   e controlli dell'interfaccia utente piè di pagina a cui l'utente potrebbe aver bisogno di accedere.

http://developer.yahoo.com/yui/docs/ YAHOO.widget.Overlay.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top