How to create a scroll bar with fixed navigation and left and right sliding using CSS

How to create a scroll bar with fixed navigation and left and right sliding using CSS

As shown above, the navigation is fixed at the top and you can slide left and right to click on more options.

This is a fairly simple production, and this article only mentions a few points:

Fixed position

The menu is fixed at the top and does not move. Use position:fixed; top:0; left:0;. Also note:

  • Move the list below down to the corresponding position, otherwise part of the list below will be covered when the page is opened.
  • Set the background for the menu. Otherwise, if it is transparent, it will overlap with the content scrolling up from the list below.
  • Set the background for the body. Since the WeChat browser has a default background color (not white), it may conflict with our effect. Set the background as needed.

Using table

Usually we use ul and li for float, but when one row cannot be displayed, it is troublesome to prevent it from falling to the second row, so we recommend using table.

The following is the entire CSS code, where .wrapper is the outer layer, and .nav and .list are brothers.

body, .wrapper 
{ 
background:#fff; 
}

.nav 
{ 
position:fixed; 
top:0;
 left:0; padding:0; 
width:100%; 
height:60px; 
overflow-x:scroll; 
background:#fff; 
}
.nav table 
{ 
width:720px;
 border-collapse:collapse;
 }
.nav table td 
{
 padding-top:10px; 
padding-bottom:10px; 
width:80px; 
text-align:center; 
}
.nav table td a 
{ 
line-height:40px; 
font-size:14px; 
font-weight:bold; 
}
.nav table td.cur a 
{ 
box-sizing:border-box; 
border-bottom:2px solid #f07515; color:#f07515; 
}

.list 
{ 
margin-top:60px; 
}

Dynamically limited width

The above CSS code sets the table to 720px, which is the width of 9 tds. Usually, the number of menus is fixed, so we just set it like this. But if it is not fixed, we can use the program to set it dynamically, such as the JavaScript setting method:

$(".header table").width($(".header table td").length * $(".header table td").width());

When the next menu item is selected, the next menu item is displayed

For non-Ajax pages, when you click the menu page behind, the page refreshes and then displays the leftmost menu items. We can use JavaScript to scroll the menu items so that the currently selected item is displayed. The sample code is as follows:

var count = 0;
$(".header table td").each(function () {
	if ($(this).hasClass("cur")) {
		return false;
	}
	count++;
});
if (count >= 3) { // Do not scroll when the first few are selected count -= 2; // No need to scroll to the far left $(".header").get(0).scrollLeft = count * $(".header table td").width();
}

Summarize

This is the end of this article about how to create a fixed navigation and left and right sliding scroll bar with CSS. For more relevant CSS navigation fixed left and right sliding scroll bar content, please search 123WORDPRESS.COM's previous articles or continue to browse the following related articles. I hope that everyone will support 123WORDPRESS.COM in the future!

<<:  Use simple jQuery + CSS to create a custom a tag title tooltip

>>:  The whole process of Vue page first load optimization

Recommend

Detailed explanation of .bash_profile file in Linux system

Table of contents 1. Environment variable $PATH: ...

In-depth understanding of JavaScript callback functions

Table of contents Preface Quick Review: JavaScrip...

Copy fields between different tables in MySQL

Sometimes, we need to copy a whole column of data...

Solve the mobile terminal jump problem (CSS transition, target pseudo-class)

Preface Many friends who have just come into cont...

Detailed explanation of nginx request header data reading process

In the previous article, we explained how nginx r...

Detailed explanation of Linux DMA interface knowledge points

1. Two types of DMA mapping 1.1. Consistent DMA m...

A brief discussion on the CSS overflow mechanism

Why do you need to learn CSS overflow mechanism i...

Storage engine and log description based on MySQL (comprehensive explanation)

1.1 Introduction to storage engines 1.1.1 File sy...

Vue interpretation of responsive principle source code analysis

Table of contents initialization initState() init...

React introduces antd-mobile+postcss to build mobile terminal

Install antd-mobile Global import npm install ant...

MySQL 5.7.17 installation and use graphic tutorial

MySQL is a relational database management system ...

How to quickly install RabbitMQ in Docker

1. Get the image #Specify the version that includ...

Detailed explanation of MySql installation and login

Check if MySQL is already installed in Linux sudo...

How to configure Nginx virtual host in CentOS 7.3

Experimental environment A minimally installed Ce...