2016-11-07 6 views
0

jquery로 최상위 스크롤을 기반으로 div에 addClass 및 removeClass를 추가하려고합니다."else if"문을 사용한 jQuery scrollTop이 작동하지 않습니다.

var mainHeight = $('#main-image').height()/1.10; 
var footHeight = $('body').height() - $('footer').height(); 

그리고이 작품을하지 않는 스크립트입니다 : "경우 다른"

$(window).scroll(function(){ 

    if ($(window).scrollTop() > mainHeight) { 
     $('#box_centrale').removeClass('chat-bottom, chat-top'); 

    } else if ($(window).scrollTop() > footHeight) { 
     $('#box_centrale').removeClass('chat-bottom'); 
     $('#box_centrale').addClass('chat-top');  

    } else { 
     $('#box_centrale').removeClass('chat-top'); 
     $('#box_centrale').addClass('chat-bottom');   
    } 
}); 

은 "만약"과 "다른"문 작동하지만

나는이 두 가지 변수를 생성 문이 작동하지 않습니다 ...
왜 작동하지 않는가?
(영어로 사과드립니다)

+1

"작동하지 않음"을 정의하십시오. 'mainHeight'와'footHeight' 값을 어느 시점에서 설정합니까? 디버깅 할 때 예상했던 것입니까? –

+0

'if' 문은 합리적으로 주문 되었습니까? 예를 들어, 먼저 '피트 하이'에 대해 확인해야합니까? 비정상적으로 발을 갖지 않는 한'mainHeight'는 항상'footHeight'보다 클 것 같기 때문에. –

+1

.removeClass() 메서드는 쉼표로 분리하지 않고 제거 할 클래스의 공백으로 구분 된 목록을 필요로합니다. 어쩌면 그게 이미 ... – Flyer53

답변

0

해결되었습니다! 두 번째 변수에 연산에 괄호가 없습니다. 나는 내가하고 싶은 일의 예를 들어 jsfiddle을 만들어 미래에 누군가를 도울 수 있기를 희망한다.

는 모두 여기에

링크 감사합니다 JSFiddle

$(document).ready(function(e) { 

var mainHeight = $('#header').height()/2; 
var footHeight = ($('body').height() - $('#footer').height() - 290); 

$(window).scroll(function(){ 
    if ($(window).scrollTop() < mainHeight) { 
     $('#fixed-box').css({ 
      "bottom" : "calc(100% - 310px)", 
     }); 

    } else if ($(window).scrollTop() > footHeight) { 
     $('#fixed-box').css({ 
      "bottom" : "calc(260px)", 
     }); 

    } else { 
     $('#fixed-box').css({ 
      "bottom" : "calc(50% - 25px)", 
     });   
    } 
});   

을});