Как остановить плавающий (скользящий) div в нижнем колонтитуле - PullRequest
0 голосов
/ 14 ноября 2009

Как получить скользящий элемент меню, который не перемещается, если страница не прокручивается ниже определенного уровня

Я использовал код из этой ссылки для плавающего меню. он имеет, как остановить плавающий стоп в заголовке, но не в нижнем колонтитуле. Как я могу изменить этот код, чтобы остановиться в нижнем колонтитуле?

    //// 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});      
            }
        );  
    }
);

Ответы [ 2 ]

0 голосов
/ 14 ноября 2009

Звучит так, как будто вы хотите, чтобы нижний колонтитул был всегда виден. Разве не было бы намного проще создать два абсолютных элемента: один вверху страницы, другой внизу. А затем добавьте весь ваш контент в div, который имеет ширину / высоту 100% (это нужно сделать с помощью javascript).

Тогда вам не нужно подключать материал к событию прокрутки тела (это никогда не выглядит очень хорошо).

Если вы добавите смещение или несколько разрывов строк до и после вашего контента, он должен работать намного лучше, чем ваши попытки.

Я сделал это с моей собственной страницей здесь .

0 голосов
/ 14 ноября 2009

Если вы ищете, как сохранить нижний колонтитул внизу и прокрутить середину, я думаю, что я сделал это, см. Мой пост в блоге ниже (в разделе «На веб-страницу»). Перейдите на http://www.jimleo.com чтобы увидеть это в действии.

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

...