Не могу сделать вкладки фиксированными вверху в разделе навигационной панели после нажатия

#javascript #html #jquery #css

Вопрос:

Редактировать: Я добавил функцию прокрутки windo, которую я делаю, но содержимое вкладок переходит из нее. Как я могу это исправить?

 $(window).scroll(function() { var scroll = $(window).scrollTop();   if (scroll gt;= 500) {  console.log(true);  $(".tabs").addClass("tabs-position");  } else {  console.log(false);  $(".tabs").removeClass("tabs-position");  } });  .tabs-position {  margin-bottom: 50px;  position:sticky;  top: 0;  background-color: red;  }  

У меня есть страница с навигационной панелью и вкладками. Когда я нажимаю на них, я направляю пользователя в раздел на той же странице, используя id атрибут, однако мои вкладки находятся в середине моей страницы, что нормально. Чего я пытаюсь добиться, так это переместить их в раздел «Навигационная панель», когда я нажимаю на них.

Я пытался после attribute , но я ничего не понимаю. Я включил свой код ниже, как я могу заменить их позицию?

 lt;section class="tabs"gt;  lt;div class="container"gt;  lt;div class="row"gt;  lt;div class="col-lg-12"gt;  lt;div class="tab-outer"gt;  lt;div class="tab-list"gt;  lt;ulgt;  lt;ligt;  lt;a href="#room" class="tab-link"gt;Roomslt;/agt;  lt;/ligt;   lt;ligt;  lt;a href="#info"gt;info tablt;/agt;  lt;/ligt;   lt;/ulgt;  lt;/divgt;  lt;/divgt;  lt;/divgt;  lt;/divgt;  lt;/divgt; lt;/sectiongt;  
 .tabs {  margin-bottom: 50px;   .tab-outer {  border-bottom: 4px solid #f5f5f5;  position: sticky;  top: 70px;  padding: 20px 0 0 0;    }   .tab-list {  a {  color: #4a4947;  }    ul {  padding: 0 30px;  display: flex;  justify-content: space-between;  list-style-type: none;  }  } }  

Ответ №1:

Вы не можете вложить CSS таким образом. Вместо этого используйте для выбора братьев и сестер на любом уровне. Кроме того, вы должны указать position:sticky прямого родственника элемента, который прокручивается.

 .tabs {  margin-bottom: 50px;  position: sticky;  top: 0;  background-color: #ffffff; }  .tabs .tab-outer {  border-bottom: 4px solid #f5f5f5;  top: 70px;  padding: 20px 0 0 0; }  .tabs .tab-list a {  color: #4a4947; }  .tabs .tab-list ul {  padding: 0 30px;  display: flex;  justify-content: space-between;  list-style-type: none; } 
 lt;section class="tabs"gt;  lt;div class="container"gt;  lt;div class="row"gt;  lt;div class="col-lg-12"gt;  lt;div class="tab-outer"gt;  lt;div class="tab-list"gt;  lt;ulgt;  lt;ligt;  lt;a href="#room" class="tab-link"gt;Roomslt;/agt;  lt;/ligt;  lt;ligt;  lt;a href="#info"gt;info tablt;/agt;  lt;/ligt;  lt;/ulgt;  lt;/divgt;  lt;/divgt;  lt;/divgt;  lt;/divgt;  lt;/divgt; lt;/sectiongt; lt;div style="height:3600px;width:100%;background-color:blue;color:white;"gt;foolt;/divgt; 

Комментарии:

1. Спасибо за ответ. Я использовал Sass для своего css, так что в этом нет ничего плохого. Кроме того, я поставил липкую позицию, так как все еще не могу получить то, что хочу. Когда я прокручиваю его, я хочу на самом деле расположить вкладки под навигационной панелью. Как я могу этого достичь

Ответ №2:

Используя z-индекс, я исправил проблему

 .tabs-position {  margin-bottom: 50px;  position:sticky;  top: 0;  background-color: red;  z-index: 1;  }