Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Зафиксировать меню при прокрутке (https://javascript.ru/forum/dom-window/59643-zafiksirovat-menyu-pri-prokrutke.html)

kolhoz 20.11.2015 13:53

Зафиксировать меню при прокрутке
 
Есть сайт http://xn--80aaxebcaf0ddn.xn--p1ai/ в котором есть основное меню под шапкой. Как его зафиксировать при прокрутке когда шапка становится невидимой?

ksa 20.11.2015 14:10

Цитата:

Сообщение от kolhoz
Как его зафиксировать при прокрутке

http://javascript.ru/forum/events/34...krollinge.html
http://mattweb.ru/moj-blog/javascrip...utke-stranitsy
https://codemaniac.ru/snip/javascrip...rutke-145.html
https://code-live.ru/post/js-float-scroll/

kolhoz 20.11.2015 14:44

спасибо. Только у меня вопрос. Сделать фиксированное меню получилось, но как сделать чтобы когда меню зафиксировалось у нее появилась тень и сделать отступ с левого края?

Или как добавить класс к элементу после фиксирования. Вот примеры скриптов, которые фиксируют меню в моем случае

var scrollFloat = function () {
    'use strict';

    var app = {};

    app.init = function init (node) {
        if (!node || node.nodeType !== 1) {
            throw new Error(node + ' is not DOM element');
        }
        handleWindowScroll(node);
    };

    function handleWindowScroll (floatElement) {
        window.onscroll = function () {
            if (window.scrollY > floatElement.offsetTop) {
                floatElement.style.position = 'fixed';
                floatElement.style.top = '0';
				floatElement.style.left = '0';
            } else {
                floatElement.style.position = '';
                floatElement.style.top = '';
            }
        };
    }

    return app;
}();


!(function () {
    'use strict';

    function getRandomInt(min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }

    function arrayRandom(arr) {
        var max = arr.length - 1,
            min = 0;
        return arr[getRandomInt(min, max)];
    }

    window.onload = function () {
        var scrollHint = document.createElement('div'),
            backgrounds = ['orange', 'lightBlue', 'yellow', 'lightGreen'],
            p = document.createElement('p');

        p.innerHTML = 'Еще вниз…';

        scrollHint.style.marginTop = '100px';
        scrollHint.style.paddingLeft = '0px';
        scrollHint.style.paddingRight = scrollHint.style.paddingLeft;

        scrollHint.appendChild(p);

        for (var i = 0, cloned; i < 20; i++) {
            cloned = scrollHint.cloneNode(true);
            cloned.style.background = arrayRandom(backgrounds);
            document.body.appendChild(cloned);
        }
    };

})();


На странице такой код перед тегом </body>
<script>
		// Инициализация обработчика плавающего элемента
		scrollFloat.init(document.getElementById('dj-main104'));
	</script>


делал согласно примеру https://code-live.ru/post/js-float-scroll/

kolhoz 20.11.2015 14:51

разобрался

Anyolchik 10.08.2017 14:25

А расскажи пожалуйста, как разобрался?
Мне тоже очень нужно добавить тень :)


Часовой пояс GMT +3, время: 11:47.