富有创意的导航菜单

2023-11-08 15:15
文章标签 导航 菜单 创意 富有

本文主要是介绍富有创意的导航菜单,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

效果展示

在这里插入图片描述
在这里插入图片描述

CSS / JavaScript 知识点

  • box-shadow 属性运用
  • 使用 JS 控制 hue-rotate 属性

页面整体布局

<nav><a href="#">Home</a><a href="#">About</a><a href="#">Services</a><a href="#">Portfolio</a><a href="#">Team</a><a href="#">Contact</a><div id="indicator"></div>
</nav>

实现整体样式

nav a {position: relative;color: #999;text-decoration: none;font-size: 1.5em;z-index: 2;height: 75px;display: flex;justify-content: center;align-items: center;padding: 0 30px;transition: 0.5s;
}nav a.active {color: #222327;
}

编写菜单激活状态的事件

let marker = document.querySelector("#indicator");
let nav = document.querySelector("nav");
let item = document.querySelectorAll("nav a");nav.onclick = () => {marker.classList.toggle("change");
};function indicator(e) {marker.style.left = e.offsetLeft + "px";marker.style.width = e.offsetWidth + "px";marker.style.display = "block";// 控制激活状态下的菜单项的hue-rotate属性,从而产生随机颜色的效果marker.style.filter = "hue-rotate(" + Math.random() * 360 + "deg)";
}item.forEach((link) => {link.addEventListener("click", (e) => {indicator(e.target);});
});function addActiveClass() {item.forEach((i) => {i.classList.remove("active");this.classList.add("active");});
}item.forEach((i) => {i.addEventListener("click", addActiveClass);
});

编写导航块样式

#indicator {position: absolute;height: 75px;width: 150px;background: #29fd53;z-index: 1;transition: 0.5s;
}#indicator::before {content: "";position: absolute;left: -30px;width: 50px;height: 15px;background: #29fd53;border-radius: 15px;box-shadow: 15px 30px #29fd53, 5px 60px #29fd53, -15px 15px #222327, -10px45px #222327;transition: 0.5s;
}#indicator::after {content: "";position: absolute;right: -30px;width: 50px;height: 15px;background: #29fd53;border-radius: 15px;box-shadow: 5px 30px #29fd53, -15px 60px #29fd53, 15px 15px #222327, 10px 45px#222327;transition: 0.5s;
}#indicator.change::after {right: -20px;box-shadow: 10px 30px #29fd53, 20px 60px #29fd53, 15px 15px #222327, 25px 45px#222327;
}

完整代码下载

完整代码下载

这篇关于富有创意的导航菜单的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/370707

相关文章

禁止平板,iPad长按弹出默认菜单事件

通过监控按下抬起时间差来禁止弹出事件,把以下代码写在要禁止的页面的页面加载事件里面即可     var date;document.addEventListener('touchstart', event => {date = new Date().getTime();});document.addEventListener('touchend', event => {if (new

Windows如何添加右键新建菜单

Windows如何添加右键新建菜单 文章目录 Windows如何添加右键新建菜单实验环境缘起以新建`.md`文件为例第一步第二步第三步 总结 实验环境 Windows7 缘起 因为我习惯用 Markdown 格式写文本,每次新建一个.txt后都要手动修改为.md,真的麻烦。如何在右键新建菜单中添加.md选项呢? 网上有很多方法,这些方法我都尝试了,要么太麻烦,要么不凑效

Camtasia2024旗舰版新功能介绍,让创意更出彩!

Camtasia2024新功能,让创意更出彩! 🌟 开篇安利 亲爱的小伙伴们,今天我要给你们介绍一款让我彻底告别“手残党”标签、轻松制作视频的神器——Camtasia2024!🎉🎉🎉 camtasia2024绿色免费安装包win+mac下载,点击链接即可保存。 https://pan.quark.cn/s/5ee0c4655701 Camtasia 2024 win-安装包官方版

使用亚马逊Bedrock的Stable Diffusion XL模型实现文本到图像生成:探索AI的无限创意

引言 什么是Amazon Bedrock? Amazon Bedrock是亚马逊云服务(AWS)推出的一项旗舰服务,旨在推动生成式人工智能(AI)在各行业的广泛应用。它的核心功能是提供由顶尖AI公司(如AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI以及亚马逊自身)开发的多种基础模型(Foundation Models,简称FMs)。

如何在Qt的widget上右键显示菜单

如何在Qt的widget上右键显示菜单 今天早上一来,我老大叫我在widget上点击右键加上一个菜单,并相应其响应的功能,因为我成刚接触Qt,所以看了下QtGUI编程这本书,做出来,记录下来,说不定哪天还用得上啊! 废话不多说,直接上代码: 方法一: m_text = QTextCodec::codecForLocale(); ui->tableWidget->addAction(ne

java AWT PopupMenu(右键菜单)

右键菜单使用PopupMenu对象表示,创建步骤如下: (1)创建PopupMenu的实例。 (2)创建多个MenuItem的多个实例,依次将这些实例加入到PopupMenu中。 (3)将PopupMenu加入到目标组件中。 (4)为需要出现上下文菜单的组件编写鼠标监听器,当用户释放鼠标右键时弹出右键菜单。 package javaAWT;import java.awt.BorderLa

java AWT菜单

菜单条,菜单和菜单项: MenuBar:菜单条,菜单的容器。 Menu:菜单组件,菜单项的容器。它也是MenuItem的子类,所以可作为菜单项使用。 PopupMenu:上下文菜单组件(右键菜单组件)。 MenuItem:菜单项组件。 CheckboxMenuItem:复选框菜单项组件。 MenuShortcut:菜单快捷组件。 Menu,MenuItem的构造器都可以接收一个字符串

JQuery.HoverDir库实现侧边栏二级菜单

Jquery.hoverDir响应鼠标移动方向的悬停效果插件 HTML代码 <div id="sidebar"><div class="mainNavs"><div class="menubox"><div class="menu_main"><h2>技术<span></span></h2><a href="#">Java</a><a href="#">PHP</a><a href="#"

云服务器如何提升你的创意生活:必试有趣项目

云服务器都可以做哪些有趣的项目 云服务器因其高效、灵活和可扩展等特点,成为了越来越多人选择的开发和学习平台。如果你拥有一台云服务器,但是不知道能用它做什么有趣的项目,那么这篇文章将为你提供一些有意思的想法。 1. 个人博客/网站 一个个人博客或网站无疑是云服务器的经典用途之一。你可以使用诸如WordPress、Hexo、Ghost等博客框架来创建属于自己的网站,分享知识和生活。 示例项目

CSS学习6--背景图片、颜色、位置、附着、简写、透明、缩放、多背景、凹凸文字、导航栏例子

CSS背景 一、背景颜色和图片二、背景位置三、背景附着四、背景简写五、背景透明六、背景缩放七、多背景八、凹凸文字九、导航栏例子 一、背景颜色和图片 background-color: pink; 背景颜色backgroundoimage: url(##.jpg); 背景图片background-repeat: 平铺 repeat-x横向平铺,repeat-y纵向平铺; 平铺不到