侧边栏壁纸
博主头像
墨雪飘影

其言之不怍,则为之也难。

  • 累计撰写 62 篇文章
  • 累计创建 17 个标签
  • 累计收到 52 条评论

目 录CONTENT

文章目录

静态导航页设计和实现

墨雪飘影
2026-10-12 / 0 评论 / 0 点赞 / 3 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

经常有人进假的 DS、WPS 之类的官网,其实百度搜不到多少,都是必应和谷歌多,银狐玩的 SEO 投毒和水坑攻击。
为了避免这种情况,在内网部署一个导航还是有必要的,为什么不用现成的,主要还是不符合我的需求,我要做静态的一方面是为了便于部署,一方面是后面接手的人方便维护。

地址: https://www.mxpy.cn/nav/index.html
bootstrap5.3.3+JS(jQuery 都没用,正常应该用的,AI 没用,我也没说)

1、轻量,不需要各种依赖。
2、便于维护,不用什么工具,记事本就可以维护。
3、支持动态更新,但是数据存在用户本地,这样不需要开发服务端。
4、支持用户自定义书签。
5、支持用户配置导入导出。
6、支持焦点记忆,点击 tab 后记录位置,下次打开就在当前 tab。

之前让 AI 给我做过一个三角洲的导航页,我就拿来让 AI 给我生成了一下类似的风格,做的都是 tab。

总体设计就是

logo
搜索框

分类|分类|分类|分类|分类

网站|网站|网站

为了实现实时更新,把页面做成了动态渲染,网页打开的时候请求 list.json,读取网站信息渲染成 HTML。

/* =========================================================
       加载默认导航
    ========================================================= */

    async function loadNavList() {

        try {

            const response =
                await fetch(
                    "statics/navlist.json?ver=" +
                    Date.now()
                );


            if (!response.ok) {

                throw new Error(
                    "HTTP " +
                    response.status
                );

            }


            const data =
                await response.json();


            if (Array.isArray(data)) {

navlist.json 设计如下:

[
	{
		"title": "墨雪飘影漏洞收集平台",
		"desc": "首家个人身份通过工信部备案的漏洞收集平台",
		"url": "https://v.mxpy.cn",
		"icon": "/favicon.ico",
		"color": "info",
		"category": "默认",
		"badge": "推荐"
	}
]

如果是 badge 为推荐,就会自动加上外部方框。

image


总体就是这样的

既然用户有自定义的需求,那么用户应该是常用,所以设计为自定义站点置顶。

image


添加自定义网站

image


添加时的模态框

image


添加后的自定义站点自动在对应 tab 置顶

现在的问题是没有做分类,头部和底部标识的便捷管理,增删改分类需要手动改两个文件,修改头部、底部只需要修改一个文件。因为这个是给办公场景使用的,所以并没有做娱乐的分类。而且没有对 favicon 请求做超时处理,默认应该是 60s,所以一些境外站点图标是白的要等一会才会加载默认 ico

image


index.html 的 320 行左右

image


main.js 的 200 行左右

目前做的还不完善,而且我不怎么会用 git,所以没有上传 GitHub,有兴趣的可以自己去扣下来。

0

评论区