2009-05-23 2 views
2

스크롤 가능한 div에 일부 텍스트 (divs)를 추가하고 자동으로 아래쪽 스크롤을 시도합니다.JQuery를 사용하여 IE8에서 ScrollHeight가 업데이트되지 않습니다.

IE8에서이 작업을 시도 할 때 어떤 이유로 작동하지 않습니다. '경고'줄의 주석 처리를 제거하면 IE8이 ScrollHeight 특성에 대해 두 개의 값을 반환합니다.

Jquery가 비동기 적으로 추가되거나 DOM을 새로 고치는 데 시간이 걸립니까?

이 문제를 해결하는 올바른 방법은 무엇입니까? 문제

HTML 페이지 :

스타일 :

.scrollbox 
{ 
    border-style: solid; 
    overflow-y: scroll; 
    padding: 5px; 
    margin: 20px; 
    border-color: #C0C0C0; 
    height: 400px; 
    width: 500px; 
    font-family: "Times New Roman", Times, serif; 
    font-size: 20px; 
    color: #333333; 
} 

JQuery와 스크립트 :

$(document).ready(function() { 
    var node = $("#list"); 
    for (i = 1; i <= 100; i++) { 
     node.append("<div>Item :" + i + "</div>"); 
    } 
    //alert(node.attr("scrollHeight")); 
    //alert(node.attr("scrollHeight")); 
    node.animate({ scrollTop: node.attr("scrollHeight") }, 500); 
}); 

바디 :

<div id="list" class="scrollbox"></div> 
+0

node.outerHeight() 및 node.innerHeight() ("px"포함 및 제외) 문제를 해결하지 못하는 것 같습니다. 누구든지 문제를 복제 할 수 있습니까? 두 컴퓨터 (XP : IE8 및 Vista : IE8)에서 혼합 된 결과가 나타납니다. –

답변

1

는 점점 대신 node.outerHeight()를 사용하여 시도 되세요 scrollHeight의 값은?

1

jQuery의 innerHeight() 값을 사용해보십시오. 또한 값이 'px'이어야합니다.

node.animate({ scrollTop: node.innerHeight() + 'px' }, 500); 
1

이 문제도 발생합니다. IE8의 결함 (호환성 모드는 동일한 동작을하지 않음)처럼 보입니다. 제 경우에는 방금 값을 읽어서 '프라이밍'하고 값을 무시한 다음 후속 읽기가 정확합니다. 이상적이지는 않지만 잘 작동하는 것 같습니다.

관련 문제