当前位置: 首页 > 知识库问答 >
问题:

如何使navbar在点击按钮时增长和收缩

谢阳成
2023-03-14

我有一个简单的HTML和scss的navbar,我想使它以一种方式,它可以折叠,例如,我将有一个小按钮在navbar的侧面,当点击时,条增长显示元素(图标和标题),当再次点击时navbar收缩显示只有图标,我如何实现这样的东西?

null

.page-container {
  display: flex;
  height: 100%;
  background: white;
}

.sidebar {
  height: 100%;
  width: 300px;
  background: rgba(0, 0, 0, 0.8);
}

.list-items {
  padding-top: 100px;
}

.list-item {
  display: flex;
  font-size: 20px;
  color: white;
  padding: 10px 20px;
  color: rgba(255, 255, 255, 0.85);
  cursor: pointer;
  position: relative;
}

.list-item.selected {
  color: white;
}

.list-item:hover {
  color: #51bbe5;
}

.list-item:hover::before {
  opacity: 0.35;
  transform: scaleY(0.5) scaleX(2);
}

.list-item::before {
  content: "";
  position: absolute;
  height: 100%;
  width: 3px;
  top: 0;
  left: 0;
  background-color: #51bbe5;
  /* set opacity to 0 by default */
  opacity: 0;
  transform: scaleY(0);
  transition: transform 0.2s, opacity 0.2s;
}

.list-item.selected::before {
  opacity: 1;
  transform: scaleY(1);
}

.list-item span.material-icons-outlined {
  margin-right: 12px;
}

.page-content-container {
  padding: 50px;
}
<div class="page-container">
  <div class="sidebar">
    <div class="list-items">
      <a class="list-item">
        <span class="material-icons-outlined"> source </span>New reconciliation
      </a>
      <a class="list-item">
        <span class="material-icons-outlined"> source </span>Reports history
      </a>
      <a class="list-item">
        <span class="material-icons-outlined"> drive_folder_upload </span
        >Uploaded files history
      </a>
      <a routerLink="/reports" routerLinkActive="selected" class="list-item">
        <span class="material-icons-outlined"> description </span>Logout
      </a>
    </div>
  </div>
  <div class="page-content-container">
  </div>
</div>

null

共有1个答案

夏侯星洲
2023-03-14

1.创建一个按钮,单击该按钮可以执行此“显示隐藏”操作,

单击按钮时,检查菜单是否可见,然后隐藏,如果隐藏,然后显示,

最初,我将它隐藏起来,您可以只通过css来反转它,不需要修改jQuery代码,它的编写方式是这样的,它在最初隐藏或可见时都能工作

如果需要其他东西,请随意评论

null

$(document).ready(function(){
  $('button').click(function(){
  if($(this).next().is(':visible')) {
      $(this).next().slideUp();
      $('.show').show();
      $('.hide').hide();
  }else {
    $(this).next().slideDown();
    $('.show').hide();
    $('.hide').show();
  }
  });
});
.page-container {
  display: flex;
  height: 100%;
  background: white;
}

.sidebar {
  height: 100%;
  width: 300px;
  background: rgba(0, 0, 0, 0.8);
}

.list-items {
  padding-top: 100px;
  display: none;
}

.list-item {
  display: flex;
  font-size: 20px;
  color: white;
  padding: 10px 20px;
  color: rgba(255, 255, 255, 0.85);
  cursor: pointer;
  position: relative;
}

.list-item.selected {
  color: white;
}

.list-item:hover {
  color: #51bbe5;
}

.list-item:hover::before {
  opacity: 0.35;
  transform: scaleY(0.5) scaleX(2);
}

.list-item::before {
  content: "";
  position: absolute;
  height: 100%;
  width: 3px;
  top: 0;
  left: 0;
  background-color: #51bbe5;
  /* set opacity to 0 by default */
  opacity: 0;
  transform: scaleY(0);
  transition: transform 0.2s, opacity 0.2s;
}

.list-item.selected::before {
  opacity: 1;
  transform: scaleY(1);
}

.list-item span.material-icons-outlined {
  margin-right: 12px;
}

.page-content-container {
  padding: 50px;
}

.showHide .hide {
  display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="page-container">
  <div class="sidebar">
  <button class="showHide"><span class="show">Show + </span><span class="hide">hide - </span></button>  
    <div class="list-items">
      <a class="list-item">
        <span class="material-icons-outlined"> source </span>New reconciliation
      </a>
      <a class="list-item">
        <span class="material-icons-outlined"> source </span>Reports history
      </a>
      <a class="list-item">
        <span class="material-icons-outlined"> drive_folder_upload </span
        >Uploaded files history
      </a>
      <a routerLink="/reports" routerLinkActive="selected" class="list-item">
        <span class="material-icons-outlined"> description </span>Logout
      </a>
    </div>
  </div>
  <div class="page-content-container">
  </div>
</div>
 类似资料:
  • 问题内容: 我的手势有点麻烦。 我正在尝试在同一个按钮上同时使用水龙头和长按,所以我已经使用了 和 但是当我点击时,我的按钮似乎对这两种功能都有反应。可能是什么问题? 问题答案: 很难说什么与您的代码不兼容,仅提供了两行,但是我建议您以这种方式进行: 为按钮创建插座 然后将手势添加到按钮中 然后创建动作来处理水龙头 Swift 3.0版本: Swift 5.x的更新语法:

  • Javascript(jQuery)代码 HTML/EJS代码 我读过的一些不起作用的帖子: 如何在单击按钮时通过动画显示视图? 尝试在单击按钮时显示div

  • 我是使用Appium进行C#测试的新手。我能够设置一切并运行测试。我使用UiAutomatorViewer访问了一些按钮,现在我需要单击一个按钮,但我只是得到了cont-desc。哪一个FindElement(ByAndroiduiAutomator.“”)是否链接到Cont-Desc?我什么都试过了,但总是出错。我已经尝试使用TouchAction或Mouse.Click()单击此按钮;但没有任

  • 我正在使用javascript(extensions chrome)在程序“Atom”中制作一个机器人,并希望点击按钮“添加到购物车”。我的html是。我猜我在使用值时需要这样做。怎么做?

  • 如何在无限次或动态地单击按钮时添加新的?或者简单地说,如何执行添加更多按钮的功能? 我在Javafx中尝试过,但它只是在列表中添加了两个按钮。 但我必须动态添加,直到用户想要添加/按下上一个按钮

  • 我想创建一个下拉列表和一个按钮,功能是当我点击按钮,然后按钮不是可点击的意思是禁用,它是显示,首先点击下拉列表。然后按钮是启用的。我们如何使我尝试但没有发生,我没有太多的想法。所以任何机构帮助我解决这个问题。 我试过这个jquery函数我对jquery不太了解。所以谁来帮帮我。