EnglishEspañol한국어Tiếng ViệtIn this tutorial, we’ll learn how to create a pattern seen on many websites these days: a fixed header which animates to a less obtrusive state as we scroll down the page, We’ll start with the basic structure, then get things working using CSS and pure JavaScript" /> EnglishEspañol한국어Tiếng ViệtIn this tutorial, we’ll learn how to create a pattern seen on many websites these days: a fixed header which animates to a less obtrusive state as we scroll down the page, We’ll start with the basic structure, then get things working using CSS and pure JavaScript" />

Tạo menu cố định khi scroll chuột wordpress

Difficulty:BeginnerLength:MediumLanguages:url-selector#selectionChanged" data-controller="url-selector">EnglishEspañol한국어Tiếng Việt

In this tutorial, we’ll learn how to create a pattern seen on many websites these days: a fixed header which animates lớn a less obtrusive sầu state as we scroll down the page. We’ll start with the basic structure, then get things working using CSS and pure JavaScript. Before closing, we’ll briefly cover how we can optimize our code as well as discussing challenges present when applying this kind of pattern khổng lồ touch devices.quý khách hàng vẫn xem: Cố định header khi cuộn trang

To get an idea of what we’re going khổng lồ build, here’s the kiểm tra (you may prefer fullscreen view):

HTML Markup

We’ll start this exercise with the following markup–a header, containing a and a couple of other nested elements:

Logo ☰ The nav element, which is part of the header, contains three elements; the biểu tượng logo, the main thực đơn, and a placeholder button khổng lồ trigger a responsive sầu menu (below 1061px). 

Note: If you cliông chồng on this button, nothing much will happen. Creating the responsive sầu thực đơn is beyond the scope of this tutorial.Quý khách hàng vẫn xem: Cố định thực đơn khi cuộn trang trong wordpress

Initial CSS Styles

Now let’s have a look at some CSS styles to get things moving:

header position: fixed; top: 0; width: 100%; padding: 20px; box-sizing: border-box; background: #DD3543;nav display: flex; align-items: flex-end; justify-content: space-between; transition: align-items .2s;.logo sản phẩm font-size: 2rem; display: inline-block; padding: 20px 30px; background: #F35B66; color: #fff; margin: 50px 0 0 50px; transition: all .2s;ul display: flex; margin: 50px 50px 0 0; padding: 0; transition: margin .2s;li:not(:last-child) margin-right: 20px;li a display: block; padding: 10px 20px;.toggle-thực đơn display: none; font-size: 2rem; color: #fff; margin: 10px 10px 0 0; transition: margin .2s;main display: block; padding: 0 20px;Here’s a brief explanation of the most important rules here:

The header element is a fixed positioned element.We use flexbox to lớn layout the nav element.The biểu tượng logo has margin-top: 50px & margin-left: 50px. Additionally, we give sầu it padding: 20px 30px.The main thực đơn mirrors the biểu tượng logo, with margin-top: 50px and margin-right: 50px.The responsive sầu links button is hidden. It becomes visible when the viewport width is less than 1061px. Moreover, we set its top và right margins khổng lồ 10px.We add the transition property khổng lồ the elements whose property values will change in the future. In this way, we achieve sầu a smooth transition effect between the initial state và the final state. 

With these rules in place, the header looks like this:




Bạn đang xem: Tạo menu cố định khi scroll chuột wordpress

*



Xem thêm: Cách Giảm Lag Máy Tính Win 7 : Nhanh Hơn, Mượt Hơn, Cách Làm Máy Tính Hết Lag Trên Win 7

Animating the Header

So far we’ve built the basic structure of our header. It’s now time khổng lồ discuss the next steps:

The main element should be positioned right underneath the header. Rethành viên that the header has positioned: fixed, & it’s therefore positioned on top of the main element. The header should be animated as we scroll down the page.

To solve sầu the first task, we add a padding-top property to lớn the main element. The value of this property should be equal khổng lồ the header’s height. In our case, we haven’t specified a fixed height for our header, so we’ll use some JavaScript khổng lồ calculate it, & then add the corresponding padding lớn the main element. 

To solve sầu the second task, we’ll bởi vì the following:

Retrieve sầu the number of pixels that the document has already been scrolled vertically.If this number is greater than 150px, we assign the scroll class to the header.

JavaScript

Here’s the required JavaScript code–we begin by defining some variables, calculating the height of the header, then adding that value as padding-top to the main element:

Now onto the scrolling event:

Then we use the classList property lớn add và remove the scroll class from our header. Not all browsers tư vấn this property however, so if you want to lớn tư vấn any of these you may want khổng lồ look at the classList.js và classie.js polyfills. For this example, we could have sầu used the className property to manipulate our single class, but in a real-world scenario this might not the igiảm giá khuyến mãi solution (in case we have sầu multiple classes). 

To wrap things up, we gọi our functions in two different cases:

window.onload = function() setTopPadding(); onScroll();;window.onrekích thước = function() setTopPadding();;

CSS

As long as our scrolling exceeds the limit of 150px, a few additional CSS rules take place:

.scroll box-shadow: 0 7px 0 0 rgba(0, 0, 0, .1);.scroll .logo padding: 10px 20px; font-size: 1.5rem;.scroll nav align-items: center;.scroll .biểu tượng logo,.scroll ul,.scroll .toggle-thực đơn margin: 0;Specifically, we make the following changes:

The aforementioned rules result in this new header layout:




Xem thêm: Tuyển Dụng, Tìm Việc Làm Part Time Tại Nhà Lương Cao 2021, Tuyển Dụng, Tìm Việc Làm Part Time Tại Nhà

*

Going Responsive

As we’ve mentioned in a previous section, when the viewport width is less than 1061px, we hide the thực đơn & show the responsive liên kết button (which doesn’t actually vị anything). Plus, we make a few other changes in the target elements.


Chuyên mục: Website