当前位置: 首页 > ds >正文

使用原生前端技术封装一个组件

封装导航栏

navbar-template.html

<header><nav><ul><li><a href="index.html"><i class="fas fa-home"></i> 主页</a></li><li><a href="#"><i class="fas fa-theater-masks"></i> 非遗项目</a><ul class="sub-menu"><li><a href="projects.html#beijing"><i class="fas fa-theater-masks"></i> 京剧</a></li><li><a href="projects.html#jianzhi"><i class="fas fa-scissors"></i> 剪纸</a></li></ul></li><li><a href="#"><i class="fas fa-user-friends"></i> 传承人</a><ul class="sub-menu"><li><a href="heritage.html#zhangsan"><i class="fas fa-user-friends"></i> 张三</a></li><li><a href="heritage.html#lisi"><i class="fas fa-user-friends"></i> 李四</a></li></ul></li><li><a href="#"><i class="fas fa-calendar-alt"></i> 活动</a><ul class="sub-menu"><li><a href="events.html#festival"><i class="fas fa-calendar-alt"></i> 非遗文化节</a></li><li><a href="events.html#workshop"><i class="fas fa-tools"></i> 工作坊</a></li></ul></li><li><a href="#"><i class="fas fa-info-circle"></i> 关于我们</a><ul class="sub-menu"><li><a href="about.html"><i class="fas fa-info-circle"></i> 关于我们</a></li><li><a href="news.html"><i class="fas fa-newspaper"></i> 非遗新闻</a></li></ul></li><li><a href="#"><i class="fas fa-user-circle"></i> 用户中心</a><ul class="sub-menu"><li><a href="login.html"><i class="fas fa-sign-in-alt"></i> 登录</a></li><li><a href="register.html"><i class="fas fa-user-plus"></i> 注册</a></li></ul></li></ul></nav>
</header>

navbar.js

class NavBar extends HTMLElement {constructor() {super();this.attachShadow({ mode: 'open' });this.loadTemplate();}async loadTemplate() {try {const response = await fetch('/template/navbar-template.html'); // 路径根据实际调整const text = await response.text();const template = document.createElement('template');template.innerHTML = text;// 创建 link 元素并添加样式表const link = document.createElement('link');link.rel = 'stylesheet';link.href = '/css/navbar.css'; // 替换为你的组件样式文件路径// 插入样式和模板内容到 Shadow DOMthis.shadowRoot.appendChild(link);this.shadowRoot.appendChild(template.content.cloneNode(true));} catch (err) {console.error('加载模板失败:', err);}}
}customElements.define('nav-bar', NavBar);

使用

image-20250530224735665
http://www.xdnf.cn/news/10168.html

相关文章:

  • 面试题 08.08. 有重复字符串的排列组合【 力扣(LeetCode) 】
  • Smith圆图知识学习笔记
  • Linux 文件 IO 性能监控与分析指南
  • QEMU/KVM课程大纲暨学习路线(1)
  • 榕壹云医疗服务系统:基于ThinkPHP+MySQL+UniApp的多门店医疗预约小程序解决方案
  • 算法打卡第11天
  • BKP(备份寄存器)和 RTC(实时时钟)
  • 飞牛fnNAS的Docker应用之迅雷篇
  • leetcode538.把二叉搜索树转换为累加树:反向中序遍历的数值累加之道
  • 半导体厂房设计建造流程、方案和技术要点-江苏泊苏系统集成有限公司
  • 跨平台浏览器集成库JxBrowser 支持 Chrome 扩展程序,高效赋能 Java 桌面应用
  • Apache SeaTunnel 引擎深度解析:原理、技术与高效实践
  • 【Linux 基础知识系列】第四篇-用户与权限管理
  • c/c++的opencv霍夫变换
  • 阻止H5页面中键盘收起的问题
  • CTFSHOW Pwn94 WP
  • [原创](Windows使用技巧): Windwos11如何设置局域网共享访问? (多图详解)
  • 在Linux上安装Docker并配置镜像加速器:从入门到实战
  • PostgreSQL 临时表空间
  • AWS API Gateway 配置WAF(中国区)
  • 《智慧医疗分级评价方法及标准(2025版)》征求意见函全面解读:人工智能医疗应用的评价体系与指南方向
  • 无线通信模块简介
  • 智能流体仿真软件AICFD 2025R1新版本功能介绍
  • 每日c/c++题 备战蓝桥杯(Cantor 表)
  • LangChain实战:MMR和相似性搜索技术应用
  • 【python深度学习】Day 40 训练和测试的规范写法
  • 【C++】C++面向对象设计的核心思想之一: 接口抽象、解耦和可扩展性
  • Python打卡训练营Day40
  • 半导体晶圆制造洁净厂房的微振控制方案-江苏泊苏系统集成有限公司
  • 如何迁移SOS数据库和修改sos服务的端口号