2009-03-08 5 views
2

У меня есть перемещаемая панель YUI, определенная как этотYUI панель и прокрутка

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

Когда панель показана, я хочу, чтобы всегда оставаться видимыми, даже если окно прокручиваются. Это также случай, благодаря fixedcenter: true. Проблема в том, что при прокрутке окна панель позиционируется в центр окна, даже если она была перетащена где-то еще ранее.

Как изменить приведенное выше определение так, чтобы положение панели оставалось постоянным относительно окна при прокрутке окна?

ответ

4

Оберните контейнер панели в оберточном элементе, который имеет фиксированное позиционирование, например.

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

Построить свою панель без свойства fixedcenter конфигурации, и сразу отцентрировать панель после визуализации его, например,

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

Панель должна оставаться в том же положении, когда прокручивается окно. Я тестировал это только в Firefox 3.0 и Internet Explorer 7 и 8.

У меня есть posted the source самодостаточного примера, который продемонстрирует эту работу.

+0

Спасибо. Это работает и в Safari 3.2.1 и Opera 10. – Kaarel

0

В соответствии с документацией, установите fixedcenter на:

«содержал» Чтобы включить функцию фиксированного позиционирования центра, а с истинным вариант. Однако, в отличие от установки свойства true, если для свойства установлено значение «содержится», если наложение слишком велико для окна просмотра , оно не будет автоматически центрироваться, когда пользователь прокручивает или изменяет размер окна (до окна достаточно большой, чтобы содержать наложение ). Это полезно в тех случаях, когда на Overlay есть как заголовок , так и пользовательский интерфейс нижнего колонтитула, доступ к которому пользователь может получить.

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