Попробуйте поиграть с этим кодом:
HTML
<div class="menu">
<a href="#1">1</a>
<a href="#2">2</a>
<a href="#3">3</a>
<a href="#4">4</a>
</div>
<section id="1"></section>
<section id="2"></section>
<section id="3"></section>
<section id="4"></section>
CSS
section {
height: 400px;
background: red;
border: 2px solid black;
}
.menu {
position: fixed;
top: 0;
height: 50px;
width: 100%;
background: #fff;
color: black;
display: flex;
align-items: center;
opacity: .5;
}
.menu a {
margin: 0 20px;
}
JSFiddle: http://jsfiddle.net/8m0w2aon/8/
Как видите, чтобы ссылки работали должным образом, вам нужно поместить опору id в раздел, к которому вы хотите перейти. Вы будете просто "телепортированы" в начало раздела.
Каждая секция должна иметь фиксированную высоту, и из нее не должен выходить ни один элемент (например, фоновое изображение, которое больше, чем сама секция).