2016-07-26 7 views
0

Here is the jsfiddlejsfiddle 내가 모르는</p> <p>... 바이올린

나는 scrolltop은 if 문에 지정된 값에 도달 할 때 클래스를 변경하려면 내부의 scrollTop 값을 얻는 방법 바보 무엇 실수는 내가이 일을 얻을 수 있음을 만들었

+0

(이 클래스 변경하기 전에 화면을 간다 당신이 색상을 변경 표시되지 않습니다) 클래스가 추가됩니다 볼 수 있습니다 [콘솔] (http://webmasters.stackexchange.com/a/77337/19742)을 살펴 보았습니까? – George

+0

예, 찾을 수 없습니다. 더 좋은 예제를 위해 jsfiddle를 이해하려고 노력하고 있지만, 다른 코드에서 작동하는 일부 코드는 내가 사용할 때 그것을하지 않을 것입니다. – Caro

+1

한 가지주의해야 할 점은 - 한 번 youve는 아래의 좋은 대답을 소화했습니다. id'container'에'background-color : green'을 지정했습니다. 나중에 적용 할 클래스가 무엇이든간에 클래스에 적용된 스타일보다 id에 대한 스타일이 지나치지 않으므로 배경색이 변경되지 않습니다. 이것은 CSS가 작동하는 방식 일 뿐이며 코드와 아무 관련이 없습니다. – Jamiec

답변

0

코드 문제 몇 가지가 있습니다 : 나는 jQuery를가있다고 생각하지 않습니다

  • 은기능
  • 당신은 두 번째 경우 $('#main' <에 누락 된 닫는 대괄호가 -, 당신은 당신이 주요의 scrollTop 값을 확인하는
  • scrollTop 기능을 해제 브래킷을 놓친 경우 그와 함께 머무는 여기
  • 를 - 그것은 것 스크롤하지 않으므로 항상 0이됩니다. 창을 스크롤하고 있습니다.

다음을 시도해보십시오 (주석 변경). 당신이 당신의 바이올린이를 사용하여 컨테이너를 검사하는 경우

$(window).on('scroll', function() { // change to scroll rather than onscroll 
    var scrollTop = $(this).scrollTop(); // get scroll top of the thing that is scrolling and cache for better performance 
    if (scrollTop > 100) { 
    $("#container").addClass("red"); 
    } else if (scrollTop > 500) { 
    $("#container").removeClass("red").addClass("blue"); // chain actions 
    } else { 
    $("#container").removeClass("red blue"); // you can pass two classes into this 
    } 
}); 

, 당신은

+0

'Uncaught ReferenceError : $가 정의되지 않았습니다'를 스 니펫에 넣었습니다. jQuery를 선택하고 관련 HTML을 포함하지 않았습니다. – Jamiec

+0

@Jamiec 죄송합니다. OP 코드 – Pete

+0

예.하지만 시도해도 여전히 작동하지 않습니다. 배경이 녹색으로 바뀌지 않습니다. CSS가 ID에 대해 지정되고 '.red' 클래스보다 선행하기 때문입니다. – Jamiec