Добрый день, давно ищу решение этой проблемы, но так и не нашел. Надеюсь, кто-то из вас сможет мне помочь.
У меня есть компонент календаря Primefaces (v6.2, тема омега) (всплывающее, а не встроенное) внутри диалогового компонента. При открытии диалогового окна и нажатии на поле ввода календаря появляется всплывающее окно календаря. Я бы хотел, чтобы он появлялся рядом с полем ввода (почти его обычное поведение вне диалога). Однако проблема, с которой я сталкиваюсь, заключается в том, что когда я прокручиваю страницу вниз и нажимаю на компонент ввода, появляется всплывающее окно, но с определенным смещением по отношению к полю ввода. Следующие скриншоты иллюстрируют проблему.
Вот мой код:
<p:dialog id = "dialog"
widgetVar = "dialog"
modal = "true">
<p:panel id = "panel">
<p:outputPanel id = "outputPanel">
<p:panelGrid columns = "2" layout = "grid"
columnClasses = "ui-grid-col-3, ui-grid-col-4"
styleClass = "ui-noborder" width = "100%">
<p:outputLabel for = "date" value = "#{msg.date}"/>
<p:calendar id = "date" value = "#{date}"
navigator = "true" mask = "true" pattern = "dd/MM/yyyy"/>
</p:panelGrid>
</p:outputPanel>
</p:panel>
....
</p:dialog>
Я не очень хорошо разбираюсь в CSS, поэтому, надеюсь, это легко исправить, но, к сожалению, я не могу понять это сам.
К сожалению, забыл добавить это, спасибо, что указали, что я отредактировал свой вопрос и добавил версию. Я использую версию 6.2 (тема омега)
Я столкнулся с той же проблемой на PF6.0. Я обнаружил проблему это, и похоже, что ребята из PF запланировали исправление для PF7.0. Вы случайно не нашли исправление после публикации?
Я не просто оставил его как есть и мог бы просто вообще отказаться от всплывающего календаря в этом конкретном случае. Спасибо за внимание, хотя я планирую перейти на 6.3, как только она будет доступна, мне нужны некоторые дополнительные исправления, которые должны быть включены в эту версию.
Эта проблема еще не устранена по состоянию на март 2021 г.
https://github.com/primefaces/primefaces/issues/3868
https://github.com/primefaces/primefaces/issues/5740
https://github.com/primefaces/primefaces/issues/6583
В качестве обходного пути для моего случая я поставил
<p:dialog blockScroll = "true">
убедитесь, что кнопка, вызывающая диалоговое окно,
window.scrollTo(0,0);
Какую версию PrimeFaces вы используете?