一、前言
本文将介绍如何使用Javascript开发sliding-nav带滑动条效果的导航插件。这个插件是可以在不同的网页上使用的,它可以使你的导航更美观、更实用。
二、制作滑动导航
首先,我们需要创建一个HTML结构,用于存储导航。该结构应该包含一个父元素(一般是nav标签),该元素内部包含链接、图标或其它的内容。
例如:
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About Us</a></li>
<li><a href="#">Our Services</a></li>
<li><a href="#">Contact Us</a></li>
</ul>
</nav>
下一步,我们需要给导航添加样式,以便页面上的导航显示完整的导航栏,并且带有可滑动的条形滑块。
nav {
width: 100%;
height: 60px;
background-color: #222;
position: fixed;
top: 0;
}
nav ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
align-items: center;
height: 100%;
}
nav li {
margin: 0 20px;
}
nav a {
text-decoration: none;
color: #fff;
text-transform: uppercase;
font-size: 18px;
}
.slider {
position: absolute;
top: 0;
left: 0;
width: 100px;
height: 4px;
background-color: #fff;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
border-radius: 5px;
transition: transform 0.3s;
}
现在,我们需要添加一些Javascript代码,以便在页面加载时为导航栏添加一个滑动条。以下代码负责计算出每个导航链接的宽度,并根据链接宽度将滑块移动到当前链接的位置。
// 获取导航链接的总宽度和滑块元素
const navLinks = document.querySelectorAll('nav ul li');
const slider = document.querySelector('.slider');
let activeLink = navLinks[0];
// 设置滑块初始位置
slider.style.width = `${activeLink.offsetWidth}px`;
slider.style.transform = `translateX(${activeLink.offsetLeft}px)`;
// 移动滑块到激活链接位置
function moveSlider(link) {
slider.style.width = `${link.offsetWidth}px`;
slider.style.transform = `translateX(${link.offsetLeft}px)`;
activeLink = link;
}
navLinks.forEach(link => {
link.addEventListener('mouseover', () => {
moveSlider(link);
});
});
创建以下HTML代码:
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About Us</a></li>
<li><a href="#">Our Services</a></li>
<li><a href="#">Contact Us</a></li>
</ul>
<div class="slider"></div>
</nav>
将示例中的CSS和Javascript代码添加到HTML文件中。此时,你会看到导航栏上方添加了一条白色的滑动条,可以使用鼠标指针在不同的链接之间切换。
三、总结
通过本文介绍的方式,你可以使用Javascript轻松地制作sliding-nav带滑动条效果的导航插件。这个插件可以帮助你提高导航的可用性和美观性,使用户更加方便地访问网站上的不同页面。
除上述示例外,这种滑动导航还可以使用多种方式实现,如使用jQuery或React等库或框架来编写更复杂的代码。