Отображение меню YUI ниже "сложить" при первом открытии


У меня есть меню YUI в нижней навигационной части экрана, которое создает большое белое пространство под ним, где список действий будет отображаться, если он виден...

При первом щелчке меню отобразится в том белом пространстве,которое требует прокрутки для его просмотра... при втором щелчке, однако, он будет тянуть вверх (в идеале), так что пользователю не придется прокручивать, чтобы увидеть меню... второй щелчок также убивает этот блок белого пространства...

Я нашел добавление стиля дисплей: нет к div убивает пустое пространство... но тогда Юи не ставит дисплей на блокировку, что, как я понял, должно быть... поэтому я написал другой метод, который будет делать это вручную... но происходит то же самое, меню сначала отображается ниже сгиба, требующего прокрутки пользователем.... 2-й раз его работает нормально... по какой-то причине верхние / левые позиции не рассчитываются должным образом при первом щелчке, и я не могу понять, почему

2 2

2 ответа:

Итак, я исправил это, просто добавив стиль к div, который содержит меню со следующими атрибутами..

    position: absolute;
    left:0px;
    top:0px;

Таким образом, он нарисует div в левом верхнем углу экрана, где всегда будет содержаться контент, и, таким образом, не будет создавать пробелы. Пробел был создан, поскольку YUI использует visibility: hidden, а не display: none

Вы пробовали использовать свойство constraintoviewport для параметров конфигурации меню (поиск по адресу YUI.widget.Menu):

(унаследовано от YAHOO.штучка.Перекрывать.) Логическое значение, указывающее, будет ли меню пытаться оставаться внутри границ размера окна просмотра. Это свойство применяется только в том случае, если свойство конфигурации" position " имеет значение dynamic и автоматически применяется ко всем подменю.

Если вы используете YUI.widget.Button, я думаю, что вы можете получить ссылку на Overlay свойство этого объекта и установить constraintoviewport в true таким образом.