Я пытаюсь реализовать панель навигации, которая переключается с позиции: абсолютное на позицию: исправлено, когда пользователь прокручивает страницу вниз более чем на 160 пикселей. Моя цель — добиться плавного перехода между этими двумя состояниями, но я изо всех сил пытаюсь заставить его работать так, как я ожидаю.
В настоящее время переход между абсолютным и фиксированным происходит внезапно, и я не могу сделать переход плавным, поскольку CSS не позволяет анимировать свойство позиции.
Вот что я пробовал до сих пор:
.navbar-absolute {
position: absolute;
top: 0;
width: 100%;
z-index: 999;
transition: all 0.5s ease;
background-color: rgba(255, 255, 255, 0.76); /* Semi-transparent background */
box-shadow: none;
opacity: 0.9;
}
.navbar-fixed {
position: fixed;
top: 0;
width: 100%;
z-index: 999;
background-color: rgb(255, 255, 255); /* Solid white background */
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); /* Shadow when scrolling */
opacity: 1;
}
JS:
let lastScrollTop = 0;
const navbar = document.querySelector('.navbar');
window.addEventListener('scroll', function () {
let scrollTop = window.pageYOffset || document.documentElement.scrollTop;
if (scrollTop === 0) {
navbar.classList.remove('navbar-fixed');
navbar.classList.add('navbar-sticky');
} else if (scrollTop > 160 && scrollTop > lastScrollTop) {
navbar.classList.remove('navbar-sticky');
navbar.classList.add('navbar-fixed');
}
});
Подробнее здесь: https://stackoverflow.com/questions/791 ... avbar-duri
Как плавно переходить между абсолютными и фиксированными позициями на панели навигации во время прокрутки? ⇐ CSS
Разбираемся в CSS
1729799396
Anonymous
Я пытаюсь реализовать панель навигации, которая переключается с позиции: абсолютное на позицию: исправлено, когда пользователь прокручивает страницу вниз более чем на 160 пикселей. Моя цель — добиться плавного перехода между этими двумя состояниями, но я изо всех сил пытаюсь заставить его работать так, как я ожидаю.
В настоящее время переход между абсолютным и фиксированным происходит внезапно, и я не могу сделать переход плавным, поскольку CSS не позволяет анимировать свойство позиции.
Вот что я пробовал до сих пор:
.navbar-absolute {
position: absolute;
top: 0;
width: 100%;
z-index: 999;
transition: all 0.5s ease;
background-color: rgba(255, 255, 255, 0.76); /* Semi-transparent background */
box-shadow: none;
opacity: 0.9;
}
.navbar-fixed {
position: fixed;
top: 0;
width: 100%;
z-index: 999;
background-color: rgb(255, 255, 255); /* Solid white background */
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); /* Shadow when scrolling */
opacity: 1;
}
JS:
let lastScrollTop = 0;
const navbar = document.querySelector('.navbar');
window.addEventListener('scroll', function () {
let scrollTop = window.pageYOffset || document.documentElement.scrollTop;
if (scrollTop === 0) {
navbar.classList.remove('navbar-fixed');
navbar.classList.add('navbar-sticky');
} else if (scrollTop > 160 && scrollTop > lastScrollTop) {
navbar.classList.remove('navbar-sticky');
navbar.classList.add('navbar-fixed');
}
});
Подробнее здесь: [url]https://stackoverflow.com/questions/79123439/how-to-smoothly-transition-between-absolute-and-fixed-positions-on-a-navbar-duri[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия