Итак, у меня есть сайт, который содержится в оболочке с максимальной шириной. На этом сайте также есть фиксированное боковое меню, которое переключается с помощью кнопки.Исправлено боковое меню внутри обертки
Моя проблема заключается в том, что фиксированное боковое меню остается внутри обертки страниц, так как фиксированные элементы относятся к окну, а не к родительскому элементу.
Вот пример использования position: fixed
: https://jsfiddle.net/okavp4p1/
Как вы можете видеть в меню выходит со стороны окна просмотра, а не обертка (серая область).
Я нашел далеко вокруг этого с помощью position: absolute
: https://jsfiddle.net/5q3hn1fq/
Здесь вы можете увидеть меню выходит из обертки. (Правильный)
Но я должен был написать некоторое дополнительное JQuery подменить фиксированное позиционирование на свитке.
// Fix menu
$(window).on('load scroll resize', function() {
navigation.find('ul').css('top', $(window).scrollTop());
});
Но при этом этот способ вызывает сбои/задержки большинства веб-браузеров. Хотя пример не плох при прокрутке, но при реализации этого на реальном сайте с большим количеством элементов/кода это становится очень очевидным.
Вот как это выглядит в использовании при прокрутке страницы вниз:
Я думал об отключении прокруткой, когда открыто меню, но мне было просто интересно, если кто-нибудь может помочь?
Мне нравится анимированные примеры, но какой-то код будет реально помочь. Вместо исправления на правом краю экрана используйте 'right: 100px'. где 100px - длина от края экрана до контейнера. Вы можете это обработать с помощью javascript. – JamieC
@JamieC Пожалуйста, найдите JSfiddles для кода: https://jsfiddle.net/okavp4p1/ && https://jsfiddle.net/5q3hn1fq/ –