2012-05-15 5 views
2

HighCharts를 기존 ASP.NET 사이트에 통합하고 알려진 버그를 발견했습니다. 이 버그는 일부 브라우저가 숨겨진 개체 (예 : IE8)의 크기를 계산할 수 없기 때문에 처음에 표시되도록 설정된 요소 : 없음 및 표시된 토글로 잘못 표시됩니다. 수정은 herehere (bottomof 페이지에서)이이 작업을 수행하는 것입니다 제시 : 당신이 위치를 설정하는 jQuery를 CSS를 사용하는 경우오프 스크린 전환 표시 없음 표시 없음

.hidden-container { 
    position: absolute; 
    top: -9999em; 
} 

이 잘하고 좋다. 우리는 같은 뒤에 코드의 위치와 다른 속성을 설정하는 :

If showExpanded Then 
     collapsedPanel.Style.Item("Display") = "none" 
     expandedPanel.Style.Item("Display") = "block" 
    Else 
     collapsedPanel.Style.Item("Display") = "block" 
     expandedPanel.Style.Item("Display") = "none" 
    End If 

내가 같은 이러한 차트 패널에 대해 편집 할 수 있습니다이 :

If showExpanded Then 
     collapsedPanel.Style.Item("Display") = "none" 
     expandedPanel.Style.Item("Display") = "block" 
    Else 
     collapsedPanel.Style.Item("Display") = "block" 
     expandedPanel.Style.Item("position") = "absolute" 
     expandedPanel.Style.Item("top") = "-9999em" 
    End If 

우리는과 같이 숨겨진/쇼 패널을 전환됩니다 자바 스크립트 파일 : 나는 특별한 (차트) 인 패널에서 오전 경우

function showHidePanelToggle(ctlID, sPnlID, hPnlID) { 
    var chkBoxID = $('#' + chkID); 
    var controlID = $('#' + ctlID); 
    var showPanelID = $('#' + sPnlID); 
    var hidePanelID = $('#' + hPnlID); 
    if (controlID.attr('type') == 'checkbox') { 
     chkID = false; 
     if (controlID.is(':checked')) { 
      showPanelID.slideUp('normal'); 
      hidePanelID.slideDown('normal'); 
     } 
     else { 
      showPanelID.slideDown('normal'); 
      hidePanelID.slideUp('normal'); 
     } 
    } 
    else { 
     ctlID = false; 
     if ((hidePanelID).is(':hidden')) { 
      showPanelID.slideUp('normal'); 
      hidePanelID.slideDown('normal'); 
      chkBoxID.attr('checked', true); 
      return false; 
     } 
     else { 
      showPanelID.slideDown('normal'); 
      hidePanelID.slideUp('normal'); 
      chkBoxID.attr('checked', false); 
      return false; 
     } 
    } 
} 

내가 추가 한 여부를 확인하고 나는이 일을하고있다 :

,
if ((hidePanelID).position(':absolute')) { 
       showPanelID.slideUp('normal'); 
       hidePanelID.slideDown('normal'); 
       chkBoxID.attr('checked', true); 
       return false; 
      } 
      else { 
       showPanelID.slideDown('normal'); 
       hidePanelID.slideUp('normal'); 
       chkBoxID.attr('checked', false); 
       return false; 
      } 

내 패널이 보이지 않습니다. (여전히 -9999em에 설정되어 있으므로 추측합니다.

제 질문은, 오프 스크린 패널을 올바르게 표시하려면 어떻게합니까? 우리는 jQuery CSS 파일을 사용하여 숨김/표시를 설정하고이 새로운 CSS를 사용하기 위해 전체 시스템을 다시 작성하는 것은 불행히도 비회원입니다.

답변

0

코드 블록 내에서 "위치"다시 기본값으로 "최고"값을 재설정 해보십시오 :

If showExpanded Then 
    collapsedPanel.Style.Item("Display") = "none" 
    expandedPanel.Style.Item("Display") = "block" // No need for this line? 
    expandedPanel.Style.Item("position") = "static" 
    expandedPanel.Style.Item("top") = "auto" 
Else 
    collapsedPanel.Style.Item("Display") = "block" 
    expandedPanel.Style.Item("position") = "absolute" 
    expandedPanel.Style.Item("top") = "-9999em" 
End If 
관련 문제