Reddog2 Ответов: 3

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


Я делаю этот сайт для кого-то и задаюсь вопросом, Как сделать панель навигации липкой на рабочем столе и прокручивать страницу ? Он работает как отзывчивый просто отлично. Любая помощь будет полезна, заранее спасибо.

<!DOCTYPE html>

body {margin:0;}

.topnav {
  overflow: hidden;
  background-color: #333;
}

.topnav a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
  font-size: 17px;
}

.topnav a:hover {
  background-color: #ddd;
  color: black;
}

.topnav .icon {
  display: none;
}

@media screen and (max-width: 600px) {
  .topnav a:not(:first-child) {display: none;}
  .topnav a.icon {
    float: right;
    display: block;
  }
}

@media screen and (max-width: 600px) {
  .topnav.responsive {position: relative;}
  .topnav.responsive .icon {
    position: absolute;
    right: 0;
    top: 0;
  }
  .topnav.responsive a {
    float: none;
    display: block;
    text-align: left;
  }

}





<div class="topnav" id="myTopnav">
    <a href="#home">Home</a>
    <a href="#contact">Accessories</a>
    <a href="#contact">Bras & Panties</a>
    <a href="#lingerie">Bridal</a>
    <a href="#contact">Costumes</a>
    <a href="#contact">Lingerie</a>
    <a href="#contact">Sleepwear</a>
    <a href="#contact">Swimwear</a>
    <a href="#">Adult Super Store</a>
  <a style="font-size: 15px" class="icon">☰</a>
</div>
<h1>
<a href="#" title="Welcome to the lingerie shop and more"></a>
</h1>
<div style="padding-left: 16px">
  <h2>Responsive Topnav Example</h2>
  <p>Resize the browser window to see how it works.</p>
</div>


function myFunction() {
    var x = document.getElementById("myTopnav");
    if (x.className === "topnav") {
        x.className += " responsive";
    } else {
        x.className = "topnav";
    }
}


Что я уже пробовал:

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

j snooze

У тебя такой вид, будто ты слишком много над этим работаешь. Может я рекомендую скачать CSS3 и начальной загрузки. У них есть все виды материалов для создания навигационных панелей с меню, а также уже включенные классы адаптивного дизайна. Множество примеров кода для вас, чтобы посмотреть и использовать.
https://getbootstrap.com/docs/3.3/css таким образом, вам не нужно воссоздавать колесо, а больше концентрироваться на своей цветовой схеме, внешнем виде и ощущениях.

Richard Deeming

Я удалил ссылку "взрослый супер-магазин" из вашего вопроса, так как это сделало вопрос похожим на спам.

В будущем, пожалуйста, избегайте размещения ссылок на внешние сайты.

Reddog2

Хорошо, спасибо за информацию, не знал об этой штуке с внешними ссылками, забыл, что она у меня есть в коде меню. Но видел, что вы его убрали. И будучи новичком в размещении вопросов, так что еще раз спасибо ..:)

3 Ответов

Рейтинг:
7

Reddog2

Хорошо спасибо :) Я дам ему шанс


Рейтинг:
27

ThilinaMD

Вы можете использовать position к fixed государство,

.topnav {
  overflow: hidden;
  background-color: #333;
  position:fixed;
}


Richard Deeming

Еще одно хорошее решение, и с гораздо лучшей поддержкой браузера, чем position:sticky. :)

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

Рейтинг:
13

Richard Deeming

Используйте" липкое " позиционирование:
Могу ли я использовать... Позиция CSS: липкая[^]
Липкое позиционирование | MDN[^]

Единственное изменение, необходимое для вашего существующего кода:

.topnav {
  overflow: hidden;
  background-color: #333;
  
  /* Add these two lines: */
  position: sticky;
  top: 0;
}
Демонстрация[^]

Он не работает в IE или Edge, поэтому вам понадобится полифилл:
GitHub-wilddeer/stickyfill: Polyfill для CSS ' position: sticky`[^]
GitHub-dollarshaveclub/stickybits: Stickybits-это легкая альтернатива "position: sticky" polyfills 🍬[^]