2016-11-07 76 views
0

我想添加類和removeClass基於頂部滾動與jQuery的div。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」語句是否合理排列?例如,你應該首先檢查「footHeight」嗎?因爲它聽起來像'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)", 
     });   
    } 
});   

});