Я хотел бы оформить строку меню как ЭТО. Он фиксируется в верхней части сайта при прокрутке вниз и не фиксируется там, где он находится при загрузке страницы.
Как это можно сделать с помощью CSS?
Я хотел бы оформить строку меню как ЭТО. Он фиксируется в верхней части сайта при прокрутке вниз и не фиксируется там, где он находится при загрузке страницы.
Как это можно сделать с помощью CSS?
То, что вам нужно, это «липкая навигационная панель/меню».
Самый простой способ - добавить приведенный ниже CSS в меню/навигационную панель.
position:fixed;
top:0px;
Тем не менее, для эффекта, более близкого к тому, который вы опубликовали, вы, вероятно, захотите взглянуть на использование jQuery, например:
$(window).bind('scroll', function() {
if ($(window).scrollTop() > 50) {
$('.menu').addClass('fixed');
}
else {
$('.menu').removeClass('fixed');
}
});
Что это делает, так это «фиксирует» строку меню в верхней части страницы, когда вы прокручиваете определенную точку (например, 50 пикселей), добавляя класс CSS «fixed» к элементу .menu
, фиксированный класс будет просто, например. CSS выше.
Есть несколько хороших примеров, перечисленных здесь.
Источник: Создание липкой навигации css и jquery а>
HTML
<div id="menu">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Shop</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
<div id="content">
This is some content 0<br/>
This is some content 1<br/>
This is some content 2<br/>
This is some content 3<br/>
This is some content 4<br/>
This is some content 5<br/>
This is some content 6<br/>
This is some content 7<br/>
This is some content 8<br/>
<div id="data" />
</div>
CSS
* {
font-family: Consolas,Sans-serif;
font-size: 10pt;
}
#menu {
position: absolute;
width: 100%;
}
#menu.out {
position: fixed;
}
#menu ul {
margin: 0;
padding: 1em .5em;
list-style: none;
background-color: #fc9;
}
#menu ul li {
display: inline-block;
}
#menu ul li a {
padding: 5px .5em;
}
#content {
background-color: #ebebee;
padding: 4em 1em 1em;
height: 900px;
}
JQuery:
var menu = $("#menu");
var ul = menu.find("ul");
var content = $("#content")[0];
var data = $("#data");
var menuHeight = menu[0].getBoundingClientRect().bottom;
var inView= true;
$(document).scroll(function(evt) {
evt.preventDefault();
var top = content.getBoundingClientRect().top;
var nextInView = top+menuHeight > 0;
if (inView ^ nextInView)
{
data.append("<div>Switching.</div>")
inView = nextInView;
if (inView)
{
menu.removeClass("out");
}
else
{
menu.addClass("out");
ul.hide().slideDown("fast");
}
}
});
Fiddle: Демо
Предоставлено: Роберт Коритник
Надеюсь это поможет
Счастливого кодирования