javascript - Span 元素不运行来自 jQuery 的动画

标签 javascript jquery html css

我试图通过单击具有 runmenu 类的 span 来通过 jQuery 动画从右侧显示一个菜单,但它不起作用,我做了同样的button 的类并且它工作正常,这里的问题是什么以及为什么它仅适用于 button?!

$(document).ready(function() {
  $(".runmenu").click(function() {
    $(".menu").animate({
      "right": 0
    }, 1000);
  });
});
/* Global*/

.conatianer {
  width: 1026.66px;
}
/*End global*/

/*Start navbar*/

.navbar {
  position: relative;
  background: url(http://vividmarketinginc.com/wp-content/uploads/2015/08/1672___selected7.jpg);
  background-size: cover;
  height: 700.531px;
  overflow: hidden;
}
.navbar .menu {
  position: absolute;
  right: -200px;
  width: 200px;
  height: 700px;
  background-color: gray;
  color: white;
}
.navbar .overlay {
  position: absolute;
  background-color: rgba(0, 0, 0, .2);
  width: 100%;
  height: 700.531px;
  z-index: 1;
}
.navbar .navbar_one,
.navbar .navbar_two {
  position: relative;
  z-index: 2;
}
.navbar .navbar_one h3 {
  float: left;
  margin-top: 0;
  color: #FFF;
  padding: 20px;
  text-transform: capitalize;
}
.navbar .navbar_one div {
  float: right;
  margin-right: 10px;
  color: #FFF;
  padding: 20px;
}
.navbar .navbar_two {
  text-align: center;
  padding-top: 230px;
}
.navbar .navbar_two i {
  color: #FFF
}
.navbar .navbar_two h1 {
  text-transform: capitalize;
  color: #FFF;
}
.navbar .navbar_two h3 {
  text-transform: capitalize;
  color: #FFF
}
.navbar .navbar_two ul {
  list-style: none;
}
.navbar .navbar_two ul li {
  width: 110px;
  background-color: rgba(81, 186, 164, .8);
  -webkit-border-radius: 25px;
  -moz-border-radius: 10px;
  border-radius: 25px;
  text-align: center;
  color: #FFF;
  font-family: Arial;
  font-size: 20px;
  font-weight: 600;
  line-height: 10px;
  cursor: pointer;
  padding: 20px 25px;
  margin-left: 555px;
}
.navbar .navbar_two ul li:hover {
  background-color: #51baa4;
}
.navbar .navbar_two ul li a {
  color: #FFF;
  text-decoration: none
}
/*End navbar*/
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">

<head>
  <title>Template retrospect</title>
  <meta charset="utf-8" />
  <link rel="stylesheet" href="css/StyleSheet.css" />
  <link rel="stylesheet" href="css/font-awesome.min.css" />
  <link rel="stylesheet" href="css/normalize.css" />

</head>

<body>
  <!--Start NavBar-->
  <div class="navbar">
    <div class="menu">
      <!--Menu -->
      <i class="fa fa-long-arrow-right"></i>
      <ul>
        <li>home</li>
        <li>generic</li>
        <li>elements</li>
      </ul>
    </div>
    <div class="overlay"></div>
    <div class="navbar_one">
      <h3>retrospect</h3>
      <div>
        <i class="fa fa-bars fa-lg"></i>
        <span class="runmenu">menu</span> 
      </div>
    </div>
    <div class="navbar_two">
      <i class="fa fa-soundcloud fa-4x"></i>
      <h1>etiam adipiscing</h1>
      <h3>magna feugiat lorem dolor egetas</h3>
      <ul>
        <li><a href="#" class="runmenu">learn more </a>
        </li>
      </ul>
    </div>

  </div>
  <script src="js/jquery-1.11.3.min.js"></script>
  <script src="js/JavaScript.js"></script>
</body>

</html>

最佳答案

这都是关于 z-index 属性的,您的 javascript 没有任何问题。您的 span.runmenu 不可点击,因为 navbar2 block 位于 span 之上。更改 css 并解决问题。

.runmenu {
  z-index: 999;
  cursor: pointer;
}

.navbar .navbar_two {
  z-index: 0;
}

参见 fiddle

预览

$(document).ready(function() {
  $('span.runmenu').click(function() {
    console.log("ok");
    $(".menu").animate({
      "right": 0
    }, 1000);
  });
});
/* Global*/

.runmenu {
  z-index: 999;
  cursor: pointer;
}
.conatianer {
  width: 1026.66px;
}
/*End global*/

/*Start navbar*/

.navbar {
  position: relative;
  background: url(http://vividmarketinginc.com/wp-content/uploads/2015/08/1672___selected7.jpg);
  background-size: cover;
  height: 700.531px;
  overflow: hidden;
}
.navbar .menu {
  position: absolute;
  right: -200px;
  width: 200px;
  height: 700px;
  background-color: gray;
  color: white;
}
.navbar .overlay {
  position: absolute;
  background-color: rgba(0, 0, 0, .2);
  width: 100%;
  height: 700.531px;
  z-index: 1;
}
.navbar .navbar_one,
.navbar .navbar_two {
  position: relative;
  z-index: 2;
}
.navbar .navbar_one h3 {
  float: left;
  margin-top: 0;
  color: #FFF;
  padding: 20px;
  text-transform: capitalize;
}
.navbar .navbar_one div {
  float: right;
  margin-right: 10px;
  color: #FFF;
  padding: 20px;
}
.navbar .navbar_two {
  text-align: center;
  padding-top: 230px;
  z-index: 0;
}
.navbar .navbar_two i {
  color: #FFF
}
.navbar .navbar_two h1 {
  text-transform: capitalize;
  color: #FFF;
}
.navbar .navbar_two h3 {
  text-transform: capitalize;
  color: #FFF
}
.navbar .navbar_two ul {
  list-style: none;
}
.navbar .navbar_two ul li {
  width: 110px;
  background-color: rgba(81, 186, 164, .8);
  -webkit-border-radius: 25px;
  -moz-border-radius: 10px;
  border-radius: 25px;
  text-align: center;
  color: #FFF;
  font-family: Arial;
  font-size: 20px;
  font-weight: 600;
  line-height: 10px;
  cursor: pointer;
  padding: 20px 25px;
  margin-left: 555px;
}
.navbar .navbar_two ul li:hover {
  background-color: #51baa4;
}
.navbar .navbar_two ul li a {
  color: #FFF;
  text-decoration: none
}
/*End navbar*/
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

<body>
  <!--Start NavBar-->
  <div class="navbar">
    <div class="menu">
      <!--Menu -->
      <i class="fa fa-long-arrow-right"></i>
      <ul>
        <li>home</li>
        <li>generic</li>
        <li>elements</li>
      </ul>
    </div>
    <div class="overlay"></div>
    <div class="navbar_one">
      <h3>retrospect</h3>
      <div>
        <i class="fa fa-bars fa-lg"></i>
        <span class="runmenu">menu</span>
      </div>
    </div>
    <div class="navbar_two">
      <i class="fa fa-soundcloud fa-4x"></i>
      <h1>etiam adipiscing</h1>
      <h3>magna feugiat lorem dolor egetas</h3>
      <ul>
        <li><a href="#" class="runmenu">learn more </a>
        </li>
      </ul>
    </div>

关于javascript - Span 元素不运行来自 jQuery 的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34462479/

相关文章:

javascript - 如何根据菜单选择更改 div

javascript - Jquery 不适用于动态添加的按钮?

javascript - Angular2+ : how does NgModel/NgControl internally handle updates from view to model?

javascript - 在 map (JS)中使用标识符(下划线)

javascript - 获取 JQuery ui.draggable 的属性

jQuery 表单转发器和 select2 不能一起工作

html - 是否有一个 css 函数允许我在一行中设置位置的顶部、右侧、底部和左侧的值?

html - CSSOM 和 DOM 创建是异步的吗?

JavaScript 不会隐藏文本,只会隐藏图像

javascript - 如何在加载惰性加载的路由组件时显示 "loading"动画?