jquery - 从悬停到按钮单击显示侧边栏

标签 jquery html css sidebar

所以,我隐藏了侧边栏,当鼠标悬停在它上面时会显示。

这是html代码:

<div id="mySidenav" class="sidenav">
  <img class="logo1" src="../img/logo1.png"><br><br>
  <a href="#">Home</a>
  <a href="#">About</a>
  <a href="#">Contact</a>
</div>

和 CSS 代码:

.sidenav {
    height: 100%;
    width: 100px;
    position: fixed;
    z-index: 1;
    top: 0;
    left: 0;
    background-color: #111;
    overflow-x: hidden;
    padding-top: 60px;
    transition: 0.8s;
}

.sidenav:hover{
   width: 250px;
}

我的问题是,如何将悬停更改为单击按钮以显示侧边栏。它将用于移动版本,因此当网页在小型设备中打开时,它会自动将侧边栏宽度更改为零并出现一个“菜单按钮”。这个例子就像这个链接:http://bootsnipp.com/snippets/featured/sidebar-responsive但我的是先使用悬停,我没有使用 jquery。有可能的?谢谢

最佳答案

您只能通过使用 :target 而不是 :hover 来使用 CSS 实现此目的。

.sidenav:target {
    width: 250px;
}

现在您只需要一个 anchor 链接即可将焦点设置在目标元素上。

<a href="#mySidenav">Click</a>

缺点是,因为您的链接还包含空 anchor 链接(#),所以边栏在单击它们时会失去焦点,并且会缩小到原始宽度。

这是一个基于您的代码的示例。
https://jsfiddle.net/PaulvdDool/rkxeyf1g/

关于jquery - 从悬停到按钮单击显示侧边栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42134085/

相关文章:

html - 如何使用 ExtJS 在 Android 中渲染类似 LCD 的显示器?

javascript - 如何使用 Jquery 检查页面上是否存在链接?

jquery - 使用 jQuery 更改依赖于滚动位置的类

javascript - 如何在 javascript 中单击时更改 css?

javascript - 使用ajax将表单数据和文件传递给php

jquery - 在调整窗口大小时调整具有多个图像的 DIV 的大小

javascript - 如果我使用 js 在 textarea 中获取 SVG 代码,如何显示 SVG 内容

jquery - 使用 history.replaceState 在 beforeunload 上更改 url/state

javascript - jQuery - 单击按钮时增加计数器的值

jquery - Bootstrap hover 和 click 事件在一起使用时发生冲突以同时具有菜单的 hover 和 click 事件