2012-07-05 3 views
0

웹 사이트 http://dev.io-web.com/portfolio.aspx에서 작업 중이며 프로그래밍 한 슬라이더에 문제가 있습니다. 어떤 이유로 슬라이드를 클릭하여 클릭하면 사이트의 스크롤 위치가 상단으로 재설정됩니다. 화면의 위치를 ​​변경하지 못하게하는 방법이 있습니까? 그것이 내가 뭘하는지 이해하기 쉽게, 그래서 나뿐만 아니라 슬라이더에 대한 코드의 일부를 포함합니다 :클릭하면 슬라이더가 화면 스크롤 변경

$(".slide1").click(function() { 
    if(current_slide != "slide1"){ 
      $(".arrow").animate({"margin-left":"349px"}); 
      if(current_slide == "slide2"){ 
       $(".slide2_display").stop(true,true).fadeOut().hide(); 
       $(".slide1_display").fadeIn().show(); 
       current_slide = "slide1"; 
       $("#slide2content").hide(); 
       $("#slide1content").show(); 
      } 
      else if(current_slide == "slide3"){ 
       $(".slide3_display").stop(true,true).fadeOut().hide(); 
       $(".reps_display").fadeIn().show(); 
       current_slide = "slide1"; 
       $("#slide3content").hide(); 
       $("#slide1content").show(); 
      } 
      else{ 
       $(".slide4_display").stop(true,true).fadeOut().hide(); 
       $(".slide1_display").fadeIn().show(); 
       current_slide = "slide1"; 
       $("#slide4content").hide(); 
       $("#slide1content").show(); 
      } 

    } 
}); 

나는이 4 개 가지 디스플레이의 각 코딩했다. 그것은 단지 디스플레이를 변경하고 페이지의 스크롤을 변경하지 않아야하지만, 아마도 클릭 기능이 자동으로 그렇게합니다. 솔루션에 대한 도움이 있으면 대단히 감사하겠습니다. 위에 나열된 URL에서 진행중인 작업을 살펴보십시오.

답변

0

jQuery.hide()를 사용하여 div를 숨기면 해당 컨테이너 .PortfolioSlider가 비어 있기 때문에 split 초 동안 0px로 크기가 조절되기 때문에 이러한 현상이 발생합니다. 이렇게하면 페이지 높이가 줄어들고 브라우저가 페이지 상단으로 건너 뜁니다. `아무것도하지 않는다;

+0

그래 상기 e.preventDefault '()가 .PortfolioSlider의 CSS에 660px의 고정 높이를인가함으로써 간단하게 고정된다. 하지만 그 플러그인에 대한 링크를 주셔서 감사합니다. 나는 그것을 미래에 사용할 것이라고 확신한다. 다른 div를 클릭 할 때 몇 개의 div에서 디스플레이를 변경하면 스크롤을 변경하게 만드는 원인을 파악할 수 없습니다. – fudge22it

+0

오, 오해 한 것에 대해 유감스럽게 생각합니다. 올바른 대답으로 제 대답을 편집했습니다. – Austin

+0

네 말이 맞아. 높이를 변경하면 문제가 해결됩니다. 다른 사이트에서 비슷한 코드를 사용하고 있지만 높이가 정의되어 있다고 생각합니다. 당신의 도움을 주셔서 감사합니다. – fudge22it