本质上就是将页面数据保存, 然后当选择对应项目的时候显示对应项目, 具体有两种实现:
一种是使用路由跳转的, 也就是点击之后页面的URL会有变化但是没有刷新页面, 一般用于比较大的模块切换, 比如你那个网站的头部导航栏. (下面将这种方法称为路由跳转)
一种是直接使用Js控制的, 不操作URL, 一般用于比较小模块的切换, 一般用于页面UI固定只要切换一部分内容. (下面将这种方法称为标签跳转)
这些一般都是借助一些框架或者库去做的, 比如路由跳转 Vue / React 这些框架都有对应的实现; 标签跳转有 ElementUI / Ant Design 这些库提供组件来实现.
具体做法就是提供一个对应的容器, 比如:
[教学课堂] 对应一个 教学课堂的 div 容器, 里面包含了 [教学课堂内容]
[实践项目] 对应一个 实践项目的 div 容器, 同样包含了 [实践项目内容]
点击 [教学课堂] 时就将 [教学课堂内容] 显示出来, 其他的都隐藏掉; 同样的点击 [实践项目] 时就将 [实践项目内容] 显示出来, 其他的都隐藏掉.
这个隐藏和显示可以使用任何方式进行, 比如:
- 使用 html + js + css 控制, 比如定义一个
.hide {display: none;}
类, 将所有内容写在html中, 将隐藏的元素添加上 .hide
类, 显示的内容删除 .hide
类.
- 使用纯 js 控制, 将 [教学课堂内容] 和 [实践项目内容] 都保存在一个 js 变量中, 需要显示的时候就将对应内容写入到页面中, 删除需要隐藏的元素.
而上文所说的 路由跳转 和 标签跳转 , 只是控制这些内容该什么时候显示和显示什么内容, 具体的显示方式大致就是上面的内容.