2013-09-01 28 views
0

我有一個腳本,可以讓圖像在屏幕左側的副本上滾動時留在屏幕上。我需要代碼的幫助,使圖像在左側副本結束後停止「錨定」,以便它不覆蓋頁面上其餘內容。在部分完成後錨定圖像向上移動

這裏的鏈接代碼&頁:

http://jsfiddle.net/TheeAndre/yQKEH/5/

$(function() { 
    var blogphotos = $('#blogphotos').offset().top; 
    $(window).scroll(function() { 
     if ($(window).scrollTop() > blogphotos) { 
      $('#blogphotos').addClass("sticky"); 
     } else { 
      $('#blogphotos').removeClass("sticky"); 
     } 
    }); 
}); 

回答

0

添加CSS:

.two_third { 
    position: initial; 
} 
.sticky.stop { 
    position: absolute; 
} 

添加ID到表(告訴JS何時停止滾動):

<div class="one_full"> 
    <table width="800" border="0" cellspacing="0" cellpadding="0" id="stopScroll"> 

更改滾動功能:當你向後滾動向上和向下

$(window).scroll(function() { 
    var winScroll = $(window).scrollTop(); 
    var stopScroll = $('#stopScroll').offset().top - $('#blogphotos').height(); 
    $('#blogphotos').removeClass("sticky stop"); 

    if (winScroll > blogphotos) { 
     $('#blogphotos').addClass("sticky"); 
    } 
    else { 
     $('#blogphotos').removeClass("sticky"); 
    } 

    if (winScroll > stopScroll) { 
     $('#blogphotos').addClass("stop").css('top', stopScroll); 
    } 
    else { 
     $('#blogphotos').removeClass("stop").css('top', 0); 
    } 
}); 

http://jsfiddle.net/samliew/yQKEH/11

+0

真車。我認爲OP會更喜歡更平滑的解決方案。 – 2013-09-01 14:24:07

+0

對不起,錯誤的小提琴鏈接,但代碼是正確的。更新。 –

+1

原因是以前版本的小提琴沒有將'.two_third'設置爲'position:initial;'。它應該現在完美。 –