jquery - 我的伪元素动画不工作

标签 jquery html css

**您好,我的菜单无法正常工作,无法弄清楚原因。它应该是这样工作的:当您单击菜单图标时,该图标会从一个汉堡包变成一个十字。

我的 HTML 是这样的: **

    <body>
     <div class="menu">
      <div class="line"></div>
    </div>
    <script>$('.menu').click(function(){
      $this = $(this);
      if ($this.hasClass('active')) {
        $this.removeClass('active');
      }
      else {
        $this.addClass('active');    
      }

    });</script>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</body>

我的 CSS 是这样的:

.menu {
  position: absolute; 
  height: 40px;
  width: 40px;
  cursor: pointer;
  top: 3%;
  left: 95%;
  z-index: 999;
}
.line {
  height: 5px;
  width: 40px;
  background: red;
  position: absolute;
  top: 50%;
  transition: all 250ms linear;

}
.line:after, .line:before {
  content: ' ';
  height: 5px;
  width: 40px;
  background: red;
  position: absolute;
  transition: all 250ms linear;
}
.line:before {
  top: -10px;
}
.line:after {
  bottom: -10px;
}
.menu.active .line {
    background: transparent;
}
.menu.active .line:before {
    background: red;
    transform: rotate(-405deg);
    top: 0px;
}
.menu.active .line:after {
     background: red; 
    transform: rotate(405deg);
    bottom: 0px;
}

最佳答案

由于您的.line 类是绝对定位的,您的.menu 没有任何尺寸,因此无法点击。如果你给 .menu 尺寸,它可以被点击。

请参阅此 fiddle :http://jsfiddle.net/h0an7ojx/7/

澄清对伪元素动画的支持。过去,webkit 浏览器在动画伪元素方面存在问题。 According to the research I carried out ,这是固定的。然而,似乎大约一年前(2014 年初),这个修复被逆转了。这个问题在闪烁浏览器中似乎也很明显。因此,对于 x 浏览器支持,伪元素动画应该真正避免。

即使有支持,此示例中的伪元素也可以位于文档流之外,因此不会始终响应点击事件。

关于jquery - 我的伪元素动画不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28393772/

相关文章:

javascript - 使用 Angular JS 中的拖放 ui-tree 时表格宽度正在缩小

jquery - 滚动到鼠标滚轮 jQuery 上的下一个 div

javascript - 同月中的星期几,moment.js

html - 我应该如何阻止我的 table 在它的底部留下空白?

html - 如何在不调整容器大小的情况下嵌入 Instagram 帖子

javascript - 使用模板使用的所有 CSS 规则生成一个内置的 angular index.html 页面?

javascript - 通过 javascript 动态添加输入

javascript - 动态调整滑动菜单左侧位置

javascript - 自动文本区域光标移动

javascript - Android 4.4 与 iOS 上的 CSS3 转换缓慢