【前端WEB】1、使用HTML+CSS+JS实现网页导航栏效果(原创含源码)

【前端WEB】使用HTML+CSS+JS实现网页导航栏效果(原创含源码)

第一章 使用 HTML+CSS+JS 实现网页首页导航栏效果(本文)
第二章 使用 HTML+CSS+JS 实现网页侧边导航栏效果
第三章 使用 HTML+CSS+JS 实现网页正文整体布局
第四章 使用 HTML+CSS+JS实现网页footer布局
第五章 使用HTML+CSS+JS实现网页“搜猪输入法”的制作及成品展示



前言

导航栏是现代网页设计中常用的一种元素,它通过优化页面结构,使用户能够轻松访问网站的不同部分。我们将通过具体的例子来展示如何创建一个具有良好用户界面和交互体验的侧边导航栏。

新人投稿!感谢大家的支持与点赞!此投稿为长期续更 以完成前端页面整体功能!


一、导航栏是什么?

这种导航方式特别适合于内容丰富的网站,如在线教育平台、博客网站或企业网站。

其效果的实现通常由HTML表单、CSS样式控制、JavaScript点击事件组成。
在这里插入图片描述

导航栏效果图如上所示,本文将提供上述图片效果的教程与源码,新人投稿欢迎大家的支持与点赞!!如有问题或需要帮助请欢迎您的指出!

二、使用步骤

1.HTML结构

代码如下(示例):放置在HTML文件夹里,可以自行增加项。
代码解释:class引用css样式、onclick点击事件通过JS完成。

<header>
	<div class="container">
		<h1 style="color: #333; text-align: center;">标题</h1>
	</div>
</header>
<nav>
	<a href="#box1">首页</a>
	<a href="#box2">导航2</a>
	<a href="#box3">导航3</a>
	<a href="#box4">导航4</a>
</nav>

2.CSS样式

代码如下(示例):
封装两个盒子,父盒子定位屏幕位置自适应、小盒子封装各个子项。
使用方法:放置在head里style标签,或者引入css文件。

          .container {
            width: 1200px;
            margin: 20px auto;
            /* 上下保留空间,左右自动居中 */
            overflow: hidden;
            background: #fff;
            padding: 20px;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
            background-color: rgba(255, 255, 255, 0.9);
            /* 白色背景,80% 不透明度 */
        }

        nav {
            background: #35424a;
            color: #ffffff;
            padding: 10px 0;
            text-align: center;
        }

        nav a {
            color: #ffffff;
            text-decoration: none;
            font-size: 18px;
            margin: 0 15px;
        }

        nav a:hover {
            color: #e8491d;
        }

该处使用的url网络请求的数据。

2.JavaScript代码

代码如下(示例):
let sections = [‘box1’, ‘box2’, ‘box3’, ‘box4’]
其中内部为HTML表单中的点击事件所绑定的ID:οnclick="scrollToSection(‘box1’)

         // 点击跳转
        function scrollToSection(sectionId) {
                document.getElementById(sectionId).scrollIntoView({ behavior: 'smooth' });
            }

            window.onscroll = function () {
                let sections = ['box1', 'box2', 'box3', 'box4'];
                sections.forEach(section => {
                    let element = document.getElementById(section);
                    let position = element.getBoundingClientRect();
                    if (position.top <= 150 && position.bottom >= 150) {
                        document.querySelectorAll('.side-nav-item').forEach(div => {
                            div.classList.remove('active');
                        });
                        document.querySelector(`.side-nav-item[onclick="scrollToSection('${section}')"]`).classList.add('active');
                    }
                });
            };


总结

本文简单介绍了HTML前端页面的导航栏的使用,而CSS提供了具体的样式,可以自己进行调节,JS实现了当用户点击侧边按钮即跳转。
如需其他示例或有问题欢迎评论!!本人看到都会回复。

  • 24
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现一个纵向滚动导航栏,可以使用 HTMLCSSJavaScript 来完成。下面是一些步骤和示例代码,可以帮助你实现这个功能。 1. 首先,我们需要创建一个 HTML 结构来定义导航栏和它的菜单项。可以使用 `<ul>` 和 `<li>` 标签来创建一个有序列表,然后在列表项中添加链接。 ```html <nav> <ul> <li><a href="#section1">Section 1</a></li> <li><a href="#section2">Section 2</a></li> <li><a href="#section3">Section 3</a></li> <li><a href="#section4">Section 4</a></li> </ul> </nav> ``` 2. 接下来,我们需要使用 CSS 来设置导航栏的样式。可以给 `<nav>` 元素设置一个固定的高度和宽度,并设置其 `overflow-y` 属性为 `scroll`,以便在内容溢出时显示滚动条。然后,可以设置 `<li>` 元素的样式,例如背景颜色、字体大小和间距。 ```css nav { height: 400px; width: 150px; overflow-y: scroll; } li { background-color: #f6f6f6; font-size: 16px; margin-bottom: 10px; padding: 10px; } ``` 3. 现在,我们需要使用 JavaScript 来添加一些交互性。我们可以使用 `window.addEventListener()` 方法来监听滚动事件,并在导航栏中高亮显示当前所在的节。 ```javascript window.addEventListener('scroll', function() { var sections = document.querySelectorAll('section'); var navHeight = document.querySelector('nav').offsetHeight; var currentSectionIndex = 0; for (var i = 0; i < sections.length; i++) { if (sections[i].offsetTop - navHeight <= window.scrollY) { currentSectionIndex = i; } } var activeLink = document.querySelector('nav li.active'); if (activeLink) { activeLink.classList.remove('active'); } var newActiveLink = document.querySelectorAll('nav li')[currentSectionIndex]; newActiveLink.classList.add('active'); }); ``` 在这段代码中,我们首先获取所有的节,并获取导航栏的高度。然后,我们遍历所有的节,如果某个节的顶部位置小于或等于滚动条的位置加上导航栏的高度,就将当前节的索引设置为 `currentSectionIndex`。最后,我们移除当前激活的菜单项的 `active` 类,然后将新的激活菜单项添加 `active` 类。 4. 最后,我们可以使用 CSS 来设置渐变效果。我们可以给 `.active` 类添加一个渐变背景色,使其从浅色逐渐变成深色。这样,用户就可以很容易地看出当前所在的节。 ```css li.active { background: linear-gradient(to bottom, #f6f6f6, #ccc); } ``` 这样,我们就完成了一个纵向滚动导航栏,并添加了滚动渐变效果。完整的 HTMLCSSJavaScript 代码如下所示: ```html <!DOCTYPE html> <html> <head> <style> nav { height: 400px; width: 150px; overflow-y: scroll; } li { background-color: #f6f6f6; font-size: 16px; margin-bottom: 10px; padding: 10px; } li.active { background: linear-gradient(to bottom, #f6f6f6, #ccc); } </style> </head> <body> <nav> <ul> <li><a href="#section1">Section 1</a></li> <li><a href="#section2">Section 2</a></li> <li><a href="#section3">Section 3</a></li> <li><a href="#section4">Section 4</a></li> </ul> </nav> <section id="section1">Section 1</section> <section id="section2">Section 2</section> <section id="section3">Section 3</section> <section id="section4">Section 4</section> <script> window.addEventListener('scroll', function() { var sections = document.querySelectorAll('section'); var navHeight = document.querySelector('nav').offsetHeight; var currentSectionIndex = 0; for (var i = 0; i < sections.length; i++) { if (sections[i].offsetTop - navHeight <= window.scrollY) { currentSectionIndex = i; } } var activeLink = document.querySelector('nav li.active'); if (activeLink) { activeLink.classList.remove('active'); } var newActiveLink = document.querySelectorAll('nav li')[currentSectionIndex]; newActiveLink.classList.add('active'); }); </script> </body> </html> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值