HTML之实现可隐藏式导航栏

预计目标

论坛系统中左右两列的框架集结构便于浏览者导航,但同时也使得浏览者的工作区域变小。浏览者希望必要的时候可以隐藏框架集中的某个框架,以使得其他相邻的框架占据尽可能打的面积,如下图所示。现在希望在 tool.html 页面中放置一个自定义命令按钮,单机此按钮能让左侧框架隐藏,再次单击此按钮能让左侧框架恢复显示。
在这里插入图片描述

部分代码展示

话不多说,先上代码,完整代码可在我的GitHub中找到,链接在此
index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>框架的属性</title>
</head>
<frameset id="myset" cols="150px, *">
    <frame src="nav.html" name="leftFrame" scrolling="yes" noresize="noresize" />
    <frameset rows="40px, *">
        <frame src="tool.html" name="topFrame" scrolling="no" noresize="noresize" />
        <frame src="content.html" name="mainFrame" scrolling="auto" noresize="noresize" />
    </frameset>
</frameset>
</html>

tool.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>工具框架</title>
    <script>
        function hideOrDisplayNavFrame()
        {
            var frameset = window.self.top.document.getElementById("myset");
            var button = window.self.document.getElementById("mybtn");
            if (button.value == "隐藏导航栏")
            {
                frameset.cols = "0px, *";
                button.value = "显示导航栏";
            }
            else
            {
                frameset.cols = "150px, *";
                button.value = "隐藏导航栏";
            }
        }
    </script>
</head>
<body>
    <input id="mybtn" type="button" value="隐藏导航栏" onclick="hideOrDisplayNavFrame();" />
</body>
</html>

关键代码解释

frame框架用法

该部分的详细介绍可见我的第三篇博客,链接在下
https://blog.csdn.net/qq_43198568/article/details/104211412

hideOrDisplayNavFrame()函数解释

        function hideOrDisplayNavFrame()
        {
            var frameset = window.self.top.document.getElementById("myset");
            var button = window.self.document.getElementById("mybtn");
            if (button.value == "隐藏导航栏")
            {
                frameset.cols = "0px, *";
                button.value = "显示导航栏";
            }
            else
            {
                frameset.cols = "150px, *";
                button.value = "隐藏导航栏";
            }
        }

首先获取 id 为"myset"frameset标签信息与 id 为"mybtn"input标签信息
buttonvalue值为"隐藏导航栏",将framesetcols值变为"0px, *"buttonvalue值变为"显示导航栏"
buttonvalue值不为"隐藏导航栏",将framesetcols值变为"150px, *"buttonvalue值变为"隐藏导航栏"

结果展示

打开 index.html 网页
在这里插入图片描述
点击隐藏导航栏,页面变为以下结果
在这里插入图片描述
点击显示导航栏,页面又变为最初的模样,展示结果如下
在这里插入图片描述

  • 8
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
响应式导航栏是指在不同的设备屏幕大小下,导航栏能够自适应地改变展示方式以保证用户体验。一般来说,响应式导航栏会在较小屏幕上展示为菜单按钮,点击后展开菜单选项,而在较大屏幕上则会直接展示所有导航选项。下面是一个简单的响应式导航栏HTMLCSS代码示例: HTML代码: ``` <nav> <div class="menu-icon"> <i class="fa fa-bars"></i> </div> <ul class="menu"> <li><a href="#">首页</a></li> <li><a href="#">产品</a></li> <li><a href="#">服务</a></li> <li><a href="#">关于我们</a></li> <li><a href="#">联系我们</a></li> </ul> </nav> ``` CSS代码: ``` nav { display: flex; justify-content: space-between; align-items: center; background-color: #333; color: #fff; padding: 20px; } .menu-icon { cursor: pointer; font-size: 24px; } .menu { display: flex; flex-direction: column; list-style: none; margin: 0; padding: 0; } .menu li { padding: 10px; } .menu li a { color: #fff; text-decoration: none; } @media only screen and (min-width: 768px) { .menu { flex-direction: row; } .menu li { margin-left: 20px; padding: 0; } .menu-icon { display: none; } } ``` 在上面的代码中,我们使用了Flexbox布局来实现导航栏的水平排列和居中对齐。当屏幕宽度小于768px时,我们通过CSS媒体查询将导航栏的菜单选项改为垂直排列,并展示菜单按钮。点击菜单按钮后,展开菜单选项。当屏幕宽度大于等于768px时,我们将菜单选项改为水平排列,并隐藏菜单按钮。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值