html - 为什么我改造后的汉堡包菜单关闭按钮不均匀?

标签 html css transform hamburger-menu

我正在尝试创建一个汉堡菜单,在您单击它之后,它会变成一个关闭(“X”)按钮。所以我为汉堡包菜单整理了这个 HTML

<div id="mobile-nav">

        <div class="menuContainer">
                <div class="bar1"></div>
                <div class="bar2"></div>
                <div class="bar3"></div>
        </div>

     <nav>
           <a href='#'>Vote</a>
           <a href='#'>Search</a>
           <a href='#'>Contact</a>
     </nav>
</div>

和这些样式

.menuContainer {
    display: inline-block;
    cursor: pointer;
}

.bar1, .bar2, .bar3 {
    width: 25px;
    height: 4px;
    background-color: #333;
    margin: 5px 0;
    transition: 0.4s;
}

.change .bar1 {
    -webkit-transform: rotate(-45deg) translate(-9px, 6px);
    transform: rotate(-45deg) translate(-9px, 6px);
}

.change .bar2 {opacity: 0;}

.change .bar3 {
    -webkit-transform: rotate(45deg) translate(-8px, -8px);
    transform: rotate(45deg) translate(-8px, -8px);
}

但是,当我点击按钮时,右侧的“X”似乎被截断了 -- https://jsfiddle.net/8jvrrcqq/3/ .我该怎么做才能使 X 在左右两侧均匀?

最佳答案

您只需要稍微调整一下翻译值。还要考虑您可以使用 translateYrotateZ,因为您只关心动画的这些方向。

 $('.close-btn').click(function() {
   $('.responsive-menu').removeClass('expand')
   $('.menu-btn').removeClass('btn-none')
 })

 $('.menuContainer').click(function() {
   $(this).toggleClass('change');
   $('nav').toggleClass('nav-open');
 });
#mobile-nav {
  display: block;
}

.menuContainer {
  display: inline-block;
  cursor: pointer;
}

.bar1,
.bar2,
.bar3 {
  width: 25px;
  height: 4px;
  background-color: #333;
  margin: 5px 0;
  transition: 0.4s;
}

.change .bar1 {
  transform: translateY(9px) rotateZ(45deg);
}

.change .bar2 {
  opacity: 0;
}

.change .bar3 {
  transform: translateY(-9px) rotateZ(-45deg);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mobile-nav">
  <div class="menuContainer">
    <div class="bar1"></div>
    <div class="bar2"></div>
    <div class="bar3"></div>
  </div>
</div>

关于html - 为什么我改造后的汉堡包菜单关闭按钮不均匀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48912363/

相关文章:

javascript - 根据另一个元素的值禁用一个元素的 url

progress-bar - 禁用 Material UI <Linear Progress/> 动画

css - transform-zoom-out 不会使内容居中

html - CSS2 多分类

html - Twitter Bootstrap 按钮下拉列表 btn-block

java - 开发网络摄像头聊天应用程序

html - 自动保存对 Chrome 开发工具中现有样式所做的 CSS 更改?

html - 具有跨度的CSS类无法识别悬停

javascript - 使用 JavaScript/JQuery 在页面加载时将相对/视口(viewport)大小转换为固定大小

google-chrome - 转换错误 : scale and overflow: hidden in Chrome