2012-03-20 1 views
0

私は縦スクロールバーでカレンダーのようなビューを持っています。場所をクリックすると、私はカレンダーエントリのデータを入力できるpopupPanelを表示します。 popupPanelのhide()が呼び出されると、メインビューのスクロールバーが一番上にリセットされます。どうして?rich:popupPanel hideスクロールバーをリセットします

popupPanelを開く前にscrollTopを保存して閉じた後に復元するようにしましたが、スクロールバーがそのようにちらつくため、美しくありません。

popupPanelを非表示にしてスクロールバーの位置に触れる理由は誰にもありますか?

例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html 
    xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:a4j="http://richfaces.org/a4j" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:rich="http://richfaces.org/rich" 
    xmlns:fn="http://java.sun.com/jsp/jstl/functions" 
    xmlns:c="http://java.sun.com/jsp/jstl/core" 
> 

<h:head> 
</h:head> 

<h:body> 
    <a4j:log id="log" level="INFO" mode="popup" hotkey="M"/> <!-- Ctrl+Shift+M --> 

    <h:form id="formId"> 
     Click anywhere in the div to show the popup... 
     <rich:popupPanel id="popupTest" width="200" height="150" modal="true"> 
      <f:facet name="header"> 
       Popup panel test 
      </f:facet> 
      <f:facet name="controls"> 
       <h:outputLink value="#" onclick="#{rich:component('popupTest')}.hide(); return false;">X</h:outputLink> 
      </f:facet> 
      And here some text...<br/> 
      <a href="#" onclick="#{rich:component('popupTest')}.hide(); return false;">Hide popup 1</a><br/> 
      <h:outputLink value="#" onclick="#{rich:component('popupTest')}.hide(); return false;">Hide popup 2</h:outputLink><br/> 
      <a href="#" onclick="console.log('click...');">Console message</a><br/> 
     </rich:popupPanel> 
     <div style="height:2000px; width:100px; border:1px solid green; background:grey;" onclick="#{rich:component('popupTest')}.show()"/> 
    </h:form> 
</h:body> 

</html> 

はブラウザによってハンドリング任意のイベントは、スクロールバーがリセットされますようです。 richfacesとはあまり関係がありません...しかし、ポップアップでの値の提出を含めてイベントを処理する方法は、スクロールバーをリセットしません。 ...ことはできませんのonclickに 'falseを返す'

感謝の追加、 ミロのファンデジー

RichFacesの-4.1、MyFacesの-2.1.6

+0

私の例では、問題とはあまりありませんでした。 –

答えて

0

は、それがために何か奇妙な(でした私は少なくとも)。 popupPanelは、スクロールバーのコンテンツと同じdivに含まれていませんでした。奇妙なことに、ポップアップが閉じられるとすぐにスクロールバーがリセットされました。すぐに私は完全なページにわたる位置絶対に含むdiv要素を追加したよう

(左、右、上、下を0に設定されているすべての)他のdivのスクロールバーはそのままだった:)

私が考えることができますポップアップがdivを作成してから再び削除することを示します。ブラウザは、レンダリングする必要のない画面の部分を強制的にレンダリングすることができます。ただ、推測...

MAG、 ミロ

関連する問題