Question

J'ai un panneau YUI déplaçable défini comme ceci

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

Lorsque le panneau est affiché, je souhaite qu'il reste toujours visible, même lorsque la fenêtre est défilée. C'est également le cas, grâce à fixedcenter: true . Le problème est que, lorsque la fenêtre défile, le panneau se positionne au centre de la fenêtre même s’il a déjà été déplacé ailleurs.

Comment dois-je modifier la définition ci-dessus pour que la position du panneau reste constante par rapport à la fenêtre lors du défilement de la fenêtre?

Était-ce utile?

La solution

Enveloppez votre conteneur de panneaux dans un élément d'encapsuleur à positionnement fixe, par exemple

.
<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>

Construisez votre panneau sans la propriété de configuration fixedcenter et centrez-le immédiatement après le rendu, par exemple,

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

Le panneau doit maintenant rester dans la même position lors du défilement de la fenêtre. Je n'ai testé cela qu'avec Firefox 3.0 et Internet Explorer 7 et 8.

J'ai posté la source d'un exemple autonome qui illustrera ce fonctionnement.

Autres conseils

Selon la documentation, définissez le fixedcenter sur:

  

"contient" pour activer le positionnement au centre fixe, comme avec le vrai   option. Cependant, contrairement à la définition de la propriété sur true, lorsque le   propriété est définie sur "contenue", si la superposition est trop grande pour la   fenêtre d'affichage, il ne sera pas automatiquement centré lorsque l'utilisateur fera défiler   ou redimensionne la fenêtre (jusqu’à ce que la fenêtre soit suffisamment grande pour contenir le   recouvrir). Ceci est utile dans les cas où la superposition a les deux en-têtes.   et l'interface utilisateur de pied de page à laquelle l'utilisateur peut avoir besoin d'accéder.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top