YUI меню рендеринга ниже "сгиба" при первом открытии - PullRequest
2 голосов
/ 22 марта 2010

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

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

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

Ответы [ 2 ]

1 голос
/ 23 марта 2010

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

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

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

0 голосов
/ 23 марта 2010

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

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

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

...