2013-09-01 27 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;'。它应该现在完美。 –