TL : 스크롤 가능한 div로 숨겨진 모든 요소를 강제로 IE7에로드하는 방법?스크롤 할 때까지 스크롤 할 수있는 div 안에 내용이로드되지 않습니다.
페이지 집합을 탐색하기 위해 '접을 수있는'메뉴를 만들고 있습니다. 이 메뉴에는 두 가지 상태가 있습니다.
메뉴 항목은 책의 챕터와 비슷합니다. 사용자가 '활성'메뉴 항목을 아래로 이동 한 내용을 진행함에 따라 진행됩니다.
페이지로드시, 아이템이 활성화 된 메뉴 항목에서 오프셋을 뺀 마이너스로 즉시 스크롤 (!)되는 위치에있는 <div>
을 원합니다.
평소와 마찬가지로 이것은 chrome 및 ff에서 완벽하게 작동하지만 ie7에서는 제대로 작동하지 않습니다.
폭발 한 상태에서 ie7은 페이지로드시 보이지 않는 경우 '로드'항목을 귀찮게하지 않는 것으로 보입니다. 무슨 일이 일어나고 ie7은 스크롤바 (또는 아주 작은)없이 메뉴 div를 시작합니다. scrollTop을 필요한 양으로 설정할 때. div는 스크롤바가 'div'의 하단으로 'bumps'가 될 때까지 아래쪽으로 스크롤되고 ie7은 다음 비트의 내용을로드하기 시작하고 다른 'bottom'등을 찾을 때까지 스크롤 할 수 있습니다.
나는 1000ms 길이의 애니메이션을 사용하여이 문제를 해결했다. 그것은 특정 요구 사항을 충족하지 못합니다 (그리고 못생긴 것처럼 보입니다) 그리고로드되지 않는 것처럼 보이기 전에 ie7이 요청되기 전에이 내용을로드하도록 강제 할 수 있습니다.
IE7 사용자가 가장 큰 대상 그룹이므로 건너 뛰지 않습니다. 자바 스크립트를 사용하지 않고도 사용자가 사용할 수있게 만드는 것은 큰 장점입니다.
내포 된 상태에는 아무런 문제가 없습니다. 폭발 한 상태에서 내파 된 상태의 CSS를 사용하고 나중에 올바른 값으로 설정했는데 도움이되지 않았습니다. 당신이 더 필요한 경우
scrollToCurrent = function(length){
var prev = $("div.scroller div.selected").prev();
// Check if previous exists
if($(prev).length > 0) {
// number of previous items * height of an item - half an items height
var scrollY = ($(prev).prevAll().length * $(prev).outerHeight()) - ($(prev).outerHeight()/2);
if(length === 0) {
$("div.scroller").scrollTop(scrollY);
} else {
$(".scroller").animate({
scrollTop : scrollY
}, length);
}
}
};
이 알려 :
는 여기에 몇 가지 코드입니다.
편집 : 기본 jsfiddle : http://jsfiddle.net/AmazingDreams/keeUY/ http://jsfiddle.net/AmazingDreams/keeUY/embedded/result/
'IE7 사용자는 우리의 가장 큰 대상 그룹입니다. '- 진지하게? 당신은 슬픈 현실을 가지고 있습니다. 그런데 이미 플러그인을 사용해 보셨습니까? 나도 알아, 진짜 문제는 아니지만, 보수적 인 사람들과 일할 때조차 * 시간 절약 * 일 수있다. 완료하려면 [여기를보십시오] (http://manos.malihu.gr/jquery-custom-content-scroller/) - 이것은 당신에게 아주 좋은 선택입니다. 마지막으로 실제 질문을 돕기 위해 jsFiddle을 게시 할 수 있습니까? –
'IE7 사용자는 우리의 가장 큰 목표 그룹입니다. '나는 당신이 IE7을 가지고있는 유일한 사람이라고 생각합니다 ... 0.8 %는 IE7을 가지고 있습니다 ... –
0.8 %가 우리의 목표 그룹이 될 것입니다. 내가 jsFiddle을 조립할 수 있는지 알게 될 것입니다. 그리고 그 플러그인을 잘 보아라. – AmazingDreams