3

I have a menu div that I want to slide down so it's always visible, but I want it to be positioned under my title div. I don't want it to move until the top of the menu hits the top of the screen and then stay in place. Basically I want a sliding menu with a maximum height it can slide to.

user30377
  • 33
  • 1
  • 5
  • Nice concept. The user doesn't have to scroll back up to locate the menu. Is this menu div horizontal, or is it a vertical one on the left? – DOK Oct 22 '08 at 14:02

2 Answers2

8

I think I understand what you're talking about—we used a similar technique on The King with jQuery. Here's how:

///// CONFIGURATION VARIABLES:

var name                = "#rightsidebar";
var menu_top_limit      = 241;
var menu_top_margin     = 20;
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});
});

(Hat tip to @soyrex who wrote this code.)

Anupam
  • 7,966
  • 3
  • 41
  • 63
jaacob
  • 471
  • 5
  • 13
0

Slashdot does this. Check it out at, for example, http://tech.slashdot.org/tech/08/10/22/1246200.shtml

You may be able to lift the technique from their site.

EndangeredMassa
  • 17,208
  • 8
  • 55
  • 79