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

Я хочу создать панель навигации, похожую на этот сайт:

http://www.mysupermarket.co.uk/#/shelves/top_offers_in_asda.html

Может ли кто-нибудь сказать мне, как создать эту панель навигации, которая следует за вами, когда вы прокручиваете страницу вниз, но не следует за вами при начальной загрузке страницы?

При доступе к данному веб-сайту попробуйте прокрутить вниз, и вы увидите понять, о чем я говорю. Навигационная панель, состоящая из МОЙ МАГАЗИН, ПРЕДЛОЖЕНИЙ, ИДЕИ И ОБРАЗ ЖИЗНИ, ВЫПЕЧКА и так далее...

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

Вот решение, которое я сделал

window.onscroll = function(){
    if(getScrollTop()>140) {
        document.getElementById("menu").style.position="fixed";
    } else {
        document.getElementById("menu").style.position="";
    }
}

function getScrollTop() {
    if (window.onscroll) {
        // Most browsers
        return window.pageYOffset;
    }

    var d = document.documentElement;
    if (d.clientHeight) {
        // IE in standards mode
        return d.scrollTop;
    }

    // IE in quirks mode
    return document.body.scrollTop;
}

person Alvis Chen    schedule 10.04.2012    source источник
comment
На этот вопрос уже был дан ответ здесь stackoverflow.com/q/6691558/144432   -  person Cengiz Can    schedule 10.04.2012


Ответы (3)


Удержание элемента в той же позиции может быть достигнуто с помощью стиля фиксированной позиции. Если вы хотите, чтобы панель навигации оставалась в том же месте, position:fixed; достаточно. (По крайней мере, не IE6)

Вы можете найти рабочий пример и некоторые подробности здесь

Однако, если вы хотите, чтобы ваша панель навигации перемещалась из исходного положения к верхней границе страницы при прокрутке страницы вниз, вы должны реализовать некоторый JavaScript, чтобы перехватывать событие прокрутки страницы и соответствующим образом перемещать <div>.

См. этот вопрос для примера того, как это сделать.

person Cengiz Can    schedule 10.04.2012
comment
Спасибо, но я не хочу, чтобы меню продолжалось. Я хочу, чтобы навигация была точно такой же, как на данном веб-сайте. У вас есть такие примеры? - person Alvis Chen; 10.04.2012

Примечание: это не будет работать с браузером Android 2.3; position:fixed не будет вести себя так, как ожидалось — он как бы временно прикрепляет свою позицию к прокручиваемому элементу, прежде чем вернуться наверх.

person Jof Arnold    schedule 09.08.2013

если вы хотите, вы можете просто установить z-index как конкретный номер, и это должно работать.

пример z-индекс:100;

person SandStormFlux    schedule 03.08.2015