Неправильная работа панели Primefaces 3.1 Overlay в IE8

Этот вопрос ранее был размещен на форуме Primefaces, и я не получил ответа.

Я пробую Primefaces 3.1, потому что мне понадобится функциональность оверлейной панели. К сожалению, в моем Internet Explorer 8 (ie8) следующая очень простая панель наложения никогда не отображается, хотя в Firefox 5.x она работает вполне нормально. Некоторые моменты в html-коде, которые кажутся непосредственно связанными с проблемой Ie8, следующие: - странице не требуется вертикальная полоса прокрутки (если на странице она есть, отображается панель наложения) - высота overlayPanel фиксирована.

<h:body>
<div style="height: 300px"></div>
<h:form>
<p:commandLink id="showAllUserList" value="Utenti online" />
<p:overlayPanel for="showAllUserList" my="right bottom" at="right top" dynamic="true"
style="width: 300px; height: 500px; border: 1px solid red; overflow-y: scroll" >
He who rules the skies rules the ground
<br/>
Monti kicks ass
</p:overlayPanel>
</h:form>
</h:body>

Если в ближайшее время я не найду обходной путь, мне придется что-то реализовать сам.

Спасибо Филиппо


person Filippo    schedule 13.02.2012    source источник


Ответы (3)


Поместите следующий код Javascript перед закрытием тега h: body.

<script type="text/javascript">
 if ( $.browser.msie) {
   if(parseInt($.browser.version, 10) === 8){
      var overlayPan = $("div.ui-overlaypanel");
      $(overlayPan).css('position','fixed');
    }
  }
</script>
person Kishor Prakash    schedule 05.08.2013

Вы можете попробовать установить appendToBody на true для панели наложения. Это может помочь в некоторых ситуациях, хотя, честно говоря, я думаю, что ваша страница достаточно проста, чтобы это не имело значения.

person Makoto    schedule 23.03.2012
comment
В настоящее время у меня такая же проблема с IE8 - когда должно появиться наложение (эффект наведения мыши), моя страница получает полосу прокрутки. Если я изменю размер окна браузера, отобразится оверлей ... - person Del Pedro; 05.07.2012

Проверьте свои стили на overflow:hidden (также на дочерние элементы .ui-overlaypanel), поиграйте, задав им overflow:visible - в сочетании с фиксированным размером (как у вас уже есть) я смог решить проблему.

person Del Pedro    schedule 05.07.2012