给移动端制作一个按键,点击弹出列表,再点击隐藏列表

527 阅读1分钟
  • 此处接这篇文章 Vue3 如何用 provide 和 inject 制作一个点击显示/隐藏列表的功能

  • 实现 topnav 为响应式后(用 @media 即可轻松实现)

  • 接下来我想实现大部分网站都有的功能:在 pc 页面的时候默认显示列表(列表也就是代码里的 aside),在移动端默认不显示,点击按键后显示列表,然后在我点击列表里的链接后,自动收起列表。

  • 首先要做一个按钮在页面左上角,这里我用 span 做这个按钮

image.png

image.png

  • 要让它只在手机页面显示,只需默认display:none;即可,然后在 @media(max-width: 500px)内改成display:inline-block;就能轻松实现。

  • 现在 pc 界面是默认隐藏列表是看不到的

  • 接下来就是需要解决在 pc 上默认显示列表的问题。

  • 因为在 pc 上不存在左上角的弹出列表按钮,所以参考上篇文章,我只需要它的 menuVisible 默认为 true 即可显示。

先获取到屏幕宽度,再判断宽度大于500时,为 true 即可。 image.png

  • 此时 pc 上默认显示列表,移动端默认不显示,点击按钮显示/隐藏。