This is my first time using JQuery in any of my projects.
I have implemented the superfish menu.
On some of my pages I have a horizontal scroll. I would like to make the menu float on the center of the page as the page is scrolled.
Also I need to make sure that the submenu on the far right hand side of the menu does not open up off the page. When I hover on the right most element it opens up half off the page.
Any ideas on how to fix these two things?
I'm perfectly willing to use a different Jquery menu if there is a better one that has these features built in...
Thanks!
javascrupt call in my page:
$(document).ready(function () {
        $("ul.sf-menu").supersubs({
            minWidth: 12,   // minimum width of sub-menus in em units 
            maxWidth: 27,   // maximum width of sub-menus in em units 
            extraWidth: 1     // extra width can ensure lines don't sometimes turn over 
            // due to slight rounding differences and font-family 
        }).superfish({ animation: { opacity: 'show', height: 'show' }, autoArrows: false });  // call supersubs first, then superfish, so that subs are 
        // not display:none when measuring. Call before initialising 
        // containing tabs for same reason. 
I can post any more code that is needed, but there is quite a lot of code in the superfish files so i'm not sure what I should post.
I found this script and it works well, however when I scroll right the horizonal menu starts to stack so the menu items are side by side rather then vertical. I want to modify this to keep the menu horizonal...
<script type="text/javascript"><!--
            var floatingMenuId = 'floatdiv';
            var floatingMenu =
{ targetX: -1000, targetY: 10,
hasInner: typeof (window.innerWidth) == 'number',
hasElement: document.documentElement
    && document.documentElement.clientWidth,
menu:
    document.getElementById
    ? document.getElementById(floatingMenuId)
    : document.all
      ? document.all[floatingMenuId]
      : document.layers[floatingMenuId]
};
            floatingMenu.move = function () {
                if (document.layers) {
                    floatingMenu.menu.left = floatingMenu.nextX;
                    floatingMenu.menu.top = floatingMenu.nextY;
                }
                else {
                    floatingMenu.menu.style.left = floatingMenu.nextX + 'px';
                    floatingMenu.menu.style.top = floatingMenu.nextY + 'px';
                }
            }
            floatingMenu.computeShifts = function () {
                var de = document.documentElement;
                floatingMenu.shiftX =
    floatingMenu.hasInner
    ? pageXOffset
    : floatingMenu.hasElement
      ? de.scrollLeft
      : document.body.scrollLeft;
                if (floatingMenu.targetX < 0) {
                    if (floatingMenu.hasElement && floatingMenu.hasInner) {
                        // Handle Opera 8 problems    
                        floatingMenu.shiftX +=
            de.clientWidth > window.innerWidth
            ? window.innerWidth
            : de.clientWidth
                    }
                    else {
                        floatingMenu.shiftX +=
            floatingMenu.hasElement
            ? de.clientWidth
            : floatingMenu.hasInner
              ? window.innerWidth
              : document.body.clientWidth;
                    }
                }
                floatingMenu.shiftY =
    floatingMenu.hasInner
    ? pageYOffset
    : floatingMenu.hasElement
      ? de.scrollTop
      : document.body.scrollTop;
                if (floatingMenu.targetY < 0) {
                    if (floatingMenu.hasElement && floatingMenu.hasInner) {
                        // Handle Opera 8 problems    
                        floatingMenu.shiftY +=
            de.clientHeight > window.innerHeight
            ? window.innerHeight
            : de.clientHeight
                    }
                    else {
                        floatingMenu.shiftY +=
            floatingMenu.hasElement
            ? document.documentElement.clientHeight
            : floatingMenu.hasInner
              ? window.innerHeight
              : document.body.clientHeight;
                    }
                }
            }
            floatingMenu.doFloat = function () {
                var stepX, stepY;
                floatingMenu.computeShifts();
                stepX = (floatingMenu.shiftX +
    floatingMenu.targetX - floatingMenu.nextX) * .07;
                if (Math.abs(stepX) < .5) {
                    stepX = floatingMenu.shiftX +
        floatingMenu.targetX - floatingMenu.nextX;
                }
                stepY = (floatingMenu.shiftY +
    floatingMenu.targetY - floatingMenu.nextY) * .07;
                if (Math.abs(stepY) < .5) {
                    stepY = floatingMenu.shiftY +
        floatingMenu.targetY - floatingMenu.nextY;
                }
                if (Math.abs(stepX) > 0 ||
    Math.abs(stepY) > 0) {
                    floatingMenu.nextX += stepX;
                    floatingMenu.nextY += stepY;
                    floatingMenu.move();
                }
                setTimeout('floatingMenu.doFloat()', 20);
            };
            // addEvent designed by Aaron Moore    
            floatingMenu.addEvent = function (element, listener, handler) {
                if (typeof element[listener] != 'function' ||
   typeof element[listener + '_num'] == 'undefined') {
                    element[listener + '_num'] = 0;
                    if (typeof element[listener] == 'function') {
                        element[listener + 0] = element[listener];
                        element[listener + '_num']++;
                    }
                    element[listener] = function (e) {
                        var r = true;
                        e = (e) ? e : window.event;
                        for (var i = element[listener + '_num'] - 1; i >= 0; i--) {
                            if (element[listener + i](e) == false)
                                r = false;
                        }
                        return r;
                    }
                }
                //if handler is not already stored, assign it    
                for (var i = 0; i < element[listener + '_num']; i++)
                    if (element[listener + i] == handler)
                        return;
                element[listener + element[listener + '_num']] = handler;
                element[listener + '_num']++;
            };
            floatingMenu.init = function () {
                floatingMenu.initSecondary();
                floatingMenu.doFloat();
            };
            // Some browsers init scrollbars only after    
            // full document load.    
            floatingMenu.initSecondary = function () {
                floatingMenu.computeShifts();
                floatingMenu.nextX = floatingMenu.shiftX +
    floatingMenu.targetX;
                floatingMenu.nextY = floatingMenu.shiftY +
    floatingMenu.targetY;
                floatingMenu.move();
            }
            if (document.layers)
                floatingMenu.addEvent(window, 'onload', floatingMenu.init);
            else {
                floatingMenu.init();
                floatingMenu.addEvent(window, 'onload',
    floatingMenu.initSecondary);
            }    
    </script>