2017-03-08 98 views
1

我想創建一個類似的效果到這個頁面,如果你去宣言,你會看到當用戶滾動時,左邊的棍子example標題。當面板結束時,標題就會離開。將元素粘貼到頁面頂部的滾動上,然後將它移開?

我想與IM不確定3塊板做這個如何去它和JS寫的香港專業教育學院沒有任何應用

https://jsfiddle.net/HV9HM/5906/

var stickyTop = $('h2').offset().top; 

$(window).on('scroll', function(){ 
     if ($(window).scrollTop() >= stickyTop) { 
      $('h2').css({position: "fixed", top: "0px"}); 
     } else { 
      $('h2').css({position: "relative", top: "0px"}); 
     } 
    }); 

更新

我已經建立了一些更接近我需要的東西,但我遇到的問題是,當您向下滾動到第在下一節中,我希望第一部分的標題能夠貼在父母的底部 - 這是否合理?繼承人一個例子jsfiddle.net/HV9HM/5910

回答

0

你需要把你的代碼放在ready函數中,因爲你試圖訪問一個沒有完全加載的元素,這就是爲什麼你會得到一個錯誤if你檢查控制檯。

$(function(){ // need this ready function 

    var stickyTop = $('h2').offset().top; 

    $(window).on('scroll', function(){ 

     if ($(window).scrollTop() >= stickyTop) { 
      $('h2').css({position: "fixed", top: "0px"}); 
     } else { 
      $('h2').css({position: "relative", top: "0px"}); 
     }; 

    }); 

}); 
+0

是的,這是與錯誤的問題,然而,這並沒有解決在滾動 – Nicholas

+0

@Nicholas他的代碼正是它說沒有固定的和相對的問題,但問題在於他在HTML中有多個'h2'標籤,所以JS不知道應該關注哪一個標籤。他應該重做HTML,以便可行。 – Slime

+0

確實,我的不好。 – Nicholas

0

試試這個:

$(function(){ 
var stickyTop=""; 
$(window).on('scroll', function(){ 
     if ($(window).scrollTop() >= stickyTop) { 
      stickyTop = $('h2').offset().top; 
      $('h2').css({position: "fixed", top: "0px"}); 
     } else { 
      stickyTop = $('h2').offset().top; 
      $('h2').css({position: "relative", top: "0px"}); 
     } 
    }); 
}); 
+0

我已經更新了我的問題@miguelmachado - 我現在已經得到它更好的工作,但它仍然不正確https://jsfiddle.net/HV9HM/5910/ – Liam

+0

爲每個h2元素存儲添加一個自定義屬性,以使其位於頂部,並創建一個函數,以便每個粘貼到頂部的元素在每個標題的頂部添加填充量。您能理解這一點嗎?我在手機上,所以我現在沒有什麼可以幫忙的。 –

相關問題