0

除非页面向下滚动超过某个点,否则我如何才能拥有一个不会移动的滑动菜单 div

我将此链接中的代码用于浮动菜单。它有如何在页眉停止浮动,但不是在页脚。如何修改此代码以在页脚处停止?

    //// CONFIGURATION VARIABLES:

var name    = "#sidebar";
var menu_top_limit   = 0;
var menu_top_margin  = 0;
var menu_shift_duration = 500;
var menuYloc = null;
///////////////////////////////////

$(window).scroll(function() 
{ 
 // Calculate the top offset, adding a limit
 offset = menuYloc + $(document).scrollTop() + menu_top_margin;

 // Limit the offset to 241 pixels...
 // This keeps the menu out of our header area:
 if(offset < menu_top_limit)
  offset = menu_top_limit;

 // Give it the PX for pixels:
 offset += "px";

 // Animate:
 $(name).animate({top:offset},{duration:menu_shift_duration,queue:false});
 });

我有另一个类似的代码应该在页脚处停止,但它不起作用:

var name = "#sidebar";  
var menuYloc = null;  
var footer = '#footer'; //Specify the ID for your footer.

 $(document).ready(
    function()
    {  
        menuYloc = parseInt($(name).css("top").substring(0,$(name).css("top").indexOf("px")))  
        $(window).scroll(
            function() 
            {   
                var offset = menuYloc + $(document).scrollTop();
                var anotherOffset = offset;

                var docTop = $(window).scrollTop();
                var footerTop = $(footer).offset().top;

                var maxOffset = footerTop - $(name).height() - 20;
                var minOffset = docTop;

                offset = offset > maxOffset ? maxOffset : offset;
                offset = offset < minOffset ? minOffset : offset;

                $(name).animate({top:offset + 'px'},{duration:500,queue:false});      
            }
        );  
    }
);
4

2 回答 2

0

听起来您想要一个始终可见的页脚。创建两个绝对元素,一个在页面顶部,一个在底部,会不会容易很多。然后将所有内容添加到具有 100% 宽度/高度的 div(必须使用 javascript 执行此操作)。

然后,您不必将东西连接到主体的滚动事件(这看起来不太好)。

如果您在内容之前和之后添加偏移量或几个换行符,它应该比您尝试的要好得多。

我在这里用我自己的页面完成了它。

于 2009-11-14T01:47:11.153 回答
0

如果您正在寻找如何将页脚保持在底部并在中间滚动,我想我已经完成了,请参阅下面的博客文章(在“进入网页”部分下)转到http://www。 jimleo.com来看看它的实际效果。

http://jimleonardo.blogspot.com/2009/02/jimleocom-is-back-up-some-how-to.html

于 2009-11-14T01:01:16.303 回答