jquery next()函数无法正常工作

时间:2013-08-28 11:18:43

标签: javascript jquery html css3 css-animations

我有一个css动画做两件事,一个添加不透明度,两个创建一个slideUp动画当用户在指定区域上盘旋时。我在添加和删除不透明度时遇到问题。我不知道我哪里出错了。下面是我的代码片段。

HTML

<body id="body" class="preload">
        <div class="box">
        <div class="trigger">hhh</div>
            <div class="overlay animated">
                <h1>box 1</h1>
            </div>
        </div>

<div class="box">
<div class="trigger">hhh</div>
      <div class="overlay animated">
            <h1>box 1</h1>
        </div>
    </div>

js

    <script type="text/javascript">
        $("window").load(function(){
            $("#body").removeClass("preload");
        });

            $(".trigger").hover(function(){
                var $this = $(this);
                $this.next(".overlay").removeClass("fadeInDown", 1000).addClass("fadeInUp", 1000);
            }); 

            $(".trigger").mouseleave(function(){
                var $this = $(this);
                $this.next(".overlay").removeClass("fadeInUp", 1000).addClass("fadeInDown", 1000);
            }); 

            $(".box").hover(function(){
                var $this = $(this);
                $this.next(".copy-bg").addClass("opacity");
            });

            $(".box").mouseleave(function(){
                var $this = $(this);
                $this.next(".copy-bg").removeClass("opacity");
            });

    </script>

CSS

.trigger{
width:100%; height: 100%;
position: relative;
 }

 .box{
width: 300px; height: 300px;
background: red; 
@include inline-block;
margin: 0 2px;
position: relative;
overflow: hidden;
  }

.overlay{
height: 100%; width: 100%;
bottom: -200px;
position: absolute;

h1{
    color: #fff;
}
  }

 .copy-bg{
@include opacity(0.50);
width: 100%; height: 100%;
background: #000;
position: absolute;
display: none;
   }

.opacity{
display: block;
  }

.copy{
position: absolute;
top: 0;
   }

  .animated{
@include transition-duration(1s ease);
-webkit-animation-fill-mode: both;
-moz-animation-fill-mode: both;
-o-animation-fill-mode: both;
   }

  .animated.hinge{
@include transition-duration(1s);
   }

 .fadeInUp{
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
transition: all 1s ease;
display: block;
  }



  .animated{-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;-ms-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:1s;-moz-animation-duration:1s;-ms-animation-duration:1s;-o-animation-duration:1s;animation-duration:1s;}.animated.hinge{-webkit-animation-duration:1s;-moz-animation-duration:1s;-ms-animation-duration:1s;-o-animation-duration:1s;animation-duration:1s;}@-webkit-keyframes fadeInUp {
0% {
    opacity: 1;
    -webkit-transform: translateY(0);
}   100% {
    opacity: 1;
    -webkit-transform: translateY(-200px);
}

}

      @-moz-keyframes fadeInUp {
0% {
    opacity: 1;
    -moz-transform: translateY(20px);
}

100% {
    opacity: 1;
    -moz-transform: translateY(0);
}
    }

  @-o-keyframes fadeInUp {
0% {
    opacity: 1;
    -o-transform: translateY(20px);
}

100% {
    opacity: 1;
    -o-transform: translateY(0);
}
   }

  @keyframes fadeInUp {
0% {
    opacity: 0;
    transform: translateY(20px);
}

100% {
    opacity: 1;
    transform: translateY(0);
}
  }

.fadeInUp {
-webkit-animation-name: fadeInUp;
-moz-animation-name: fadeInUp;
-o-animation-name: fadeInUp;
animation-name: fadeInUp;
 }
@-webkit-keyframes fadeInDown {
0% {
    opacity: 1;
    -webkit-transform: translateY(-200px);
}

100% {
    opacity: 1;
    -webkit-transform: translateY(0);
}
   }

  @-moz-keyframes fadeInDown {
0% {
    opacity: 0;
    -moz-transform: translateY(-20px);
}

100% {
    opacity: 1;
    -moz-transform: translateY(0);
}
    }

   @-o-keyframes fadeInDown {
0% {
    opacity: 0;
    -o-transform: translateY(-20px);
}

100% {
    opacity: 1;
    -o-transform: translateY(0);
}
    }

     @keyframes fadeInDown {
0% {
    opacity: 0;
    transform: translateY(-20px);
}

100% {
    opacity: 1;
    transform: translateY(0);
}
  }

 .fadeInDown {
-webkit-animation-name: fadeInDown;
-moz-animation-name: fadeInDown;
-o-animation-name: fadeInDown;
animation-name: fadeInDown;
  }

1 个答案:

答案 0 :(得分:2)

正如您所看到的,copy-bg不是box的下一个元素,它是一个孩子

        $(".box").hover(function(){
            var $this = $(this);
            $this.children(".copy-bg").addClass("opacity");
        });

        $(".box").mouseleave(function(){
            var $this = $(this);
            $this.children(".copy-bg").removeClass("opacity");
        });