2013-03-20 2 views
0

회전하는 배경 이미지에 javascript를 사용하고 있습니다. 문제는 이미지가 바뀔 때마다 페이지가 맨 위로 이동한다는 것입니다. 바라기를 이것은 쉬운 수정이다! 즉시 #slider 결석이고 다른 페이지의 콘텐츠가 우주로 붕괴하기 때문에자바 스크립트 회전 배경을 사용하는 경우 페이지가 위로 이동합니다.

<script type='text/javascript'> 
$(window).load(function(){ 


var initialBg = $('#slider').css("background-image"); // added 

var firstTime = true; 
var arr = [initialBg, "url(/wp-content/uploads/2013/03/slider2-explore.png)", "url(/wp- content/uploads/2013/03/slider3-experience.png)"]; 
(function recurse(counter) { 
    var bgImage = arr[counter]; 
    if (firstTime == false) { 
     $("#slider").fadeOut("slow", function(){ 
      $('#slider').css('background-image', bgImage); 
     }); 
     $("#slider").fadeIn("slow"); 
    } else { 
     firstTime = false; 
    }    
    delete arr[counter]; 
    arr.push(bgImage); 
    setTimeout(function() { 
     recurse(counter + 1); 
    }, 4500); 
})(0); 

}); 
</script> 
+0

내게 의심스러운 것으로 보이는 것은 'arr.push (bgImage);'뿐입니다. 인 페이지 앵커로 작동 할 수 있습니다. – isherwood

+0

대안을 제안 할 수 있습니까? –

+0

데모가 없으면 아무 것도 확신 할 수 없습니다. 나는 꽤 JS 마법사가 아니다. :-) – isherwood

답변

0

페이지가 점프 :

여기 내 코드입니다. 이 시도 : 또한 홀수 fadeIn 지연을 방지하기 위해 배경 이미지를 미리로드 할 수 있습니다

#slider_wrapper { 
    height: 550px; 
} 

<div id="slider_wrapper"> 
    <div id="slider"></div> 
</div> 

.

+0

환상적인, 그 트릭을 했어! #slider div의 높이를 정의하려고 시도했지만 작동하지 않았습니다. 이미지를 미리로드하는 가장 좋은 방법을 알려주시겠습니까? –

+0

당신은 그것들을 오프 스크린 HTML에 넣을 수 있습니다. {position : absolute; 왼쪽 : -999em;} 또는 JS 프리 로더를 사용할 수 있습니다. Google이 SO를 검색하거나 검색합니다. SO에 대한 유용한 답변을 수락하고/또는 upvote하십시오. – isherwood

+0

정말 고마워요. 거대한 도움이됩니다. 한 번 더 물어 보시면 마음에 들지 않으시겠습니까? 내 회전 배경을 오버레이하는 텍스트 상자의 맨 위 부분이 바뀔 때마다 배경 뒤로 뒤에서 뛰어 오는 것처럼 보이는 이유는 무엇입니까? –

관련 문제