2016-04-30 94 views
0

我一直在使用以下脚本使页面上的div浮动,因为页面滚动。在滚动到页脚之前停止跟随滚动

这是脚本:

(function($) { 
    var element = $('.follow-scroll'), 
     originalY = element.offset().top; 

    // Space between element and top of screen (when scrolling) 
    var topMargin = 105; 

    // Should probably be set in CSS; but here just for emphasis 
    element.css('position', 'relative'); 

    $(window).on('scroll', function(event) { 
     var scrollTop = $(window).scrollTop(); 

     element.stop(false, false).animate({ 
      top: scrollTop < originalY 
        ? 0 
        : scrollTop - originalY + topMargin 
     }, 300); 
    }); 
})(jQuery); 

这是网页:http://www.wedoblogging.com/faqs/(U:wedoblogging,P:cadb7b6c)

正如你所看到的,浮动的div(标题为:问问)保持浮动下到页脚,我希望这个div在页面到达页脚上方的绿色栏之前停止滚动。

非常感谢您的帮助!

+0

你有没有得到这个停在页脚滚动,不只是给它一个滚动限制? –

回答

0

与此相似的规则

top: scrollTop < originalY ? 0 : /*following code*/; 

您添加包含允许的最高位置,另一条规则:

var nextPosition = scrollTop - originalY + topMargin; 
var maxPositionAllowed = 450; 
top: scrollTop < originalY ? 0 : Math.min(nextPosition, maxPositionAllowed) 

所以每当,元素试图去吼叫maxPostionAllowed,你将它强制离顶部有那么远的距离。我不确定450是否是你想要的价值,但你可以看看它的外观。

因此,这将是这个样子:

(function($) { 
    var element = $('.follow-scroll'), 
     originalY = element.offset().top; 

    // Space between element and top of screen (when scrolling) 
    var topMargin = 105; 

    // Should probably be set in CSS; but here just for emphasis 
    element.css('position', 'relative'); 

    $(window).on('scroll', function(event) { 
     var scrollTop = $(window).scrollTop(); 
     var nextPosition = scrollTop - originalY + topMargin; 
     var maxPositionAllowed = 450; 

     element.stop(false, false).animate({ 
      top: scrollTop < originalY ? 0 : Math.min(nextPosition, maxPositionAllowed) 
     }, 300); 
    }); 
})(jQuery); 
+0

谢谢你的帮助! – CoolBreezeUK

+0

谢谢你的帮助! 我尝试添加代码(虽然我不知道我是否正确添加它,因为浮动现在不工作): 这就是我现在的: – CoolBreezeUK

+0

'(function($){ 变种元素= $( '后续滚动'), 渊源= element.offset()顶部;(滚动时) //空间元件和屏幕的顶部之间 变种TOPMARGIN = 105; //应该可能在CSS中设置;但这里只是为了强调 element.css('position','relative'); $(window).on('scroll',function(event){ var scrollTop = $(窗口).scrollTop() ; var nextPosition = scrollTop - originalY + topMargin; VAR maxPostionAllowed = 450;'' – CoolBreezeUK