Div高度动画导致div改变jQuery中的对齐方式

时间:2014-10-23 02:04:23

标签: javascript jquery html jquery-animate height

我试图通过点击按钮动画5个div的高度。虽然这些div的大小确实增加,但动画会使div在顶部而不是从底部对齐。如果那有意义的话。 我实际上更喜欢它从顶部向下移动(从顶部对齐),但即使反过来,这个动画只是完成自己然后更改div位置。



$("button").click(function(){
  $("#f").css("display", "inline");
  $(".css").css("display", "inline");
  $(".html").css("display", "inline");
  $(".jQuery").css("display", "inline");
  $(".premiere").css("display", "inline");
  $(".photoshop").css("display", "inline");
  $(".css").animate({height:'300'}, 600);
  $(".html").animate({height:'300'}, 600);
  $(".jQuery").animate({height:'125'}, 600);
  $(".premiere").animate({height:'250'}, 600);
  $(".photoshop").animate({height:'325'}, 600);
});

p{
  transform: rotate(270deg);
  margin-top: 60px;
}

#f, .css, .html, .jQuery, .premiere, .photoshop{
  height: 0px;
  width: 30px;
  display: none;
  background-color: blue;
}

.css{ background-color: blue }

.html{ background-color: red }

.jQuery{ background-color: orange }

.premiere{ background-color: purple }

.photoshop{ background-color: yellow }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<button>Go</button>
<div></div>
<div class="f">
  <div class="html"><p>HTML</p></div>
  <div class="css"><p>CSS</p></div>
  <div class="jQuery"><p>jQuery</p></div>
  <div class="premiere"><p>Premiere</p></div>
  <div class="photoshop"><p>Photoshop</p></div>
</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

vertical-align: bottom添加到.jQuery.html.premiere.photoshop.css

更新了Fiddle

答案 1 :(得分:0)

在这里,对于自上而下制作动画的版本,正如您所希望的那样(如果我理解您正确的话):

我还为所有栏添加了一个公共类,并稍微更新了你的JS和CSS,使你的代码更少冗余

小提琴:http://jsfiddle.net/znxue2wg/


JS,CSS,HTML:

$("button").click(function(){
  $(".bar").css("display", "inline");
  $(".bar.html").animate({height:'300'}, 600);
  $(".bar.css").animate({height:'300'}, 600);
  $(".bar.jQuery").animate({height:'125'}, 600);
  $(".bar.premiere").animate({height:'250'}, 600);
  $(".bar.photoshop").animate({height:'325'}, 600);
});
.bar {
  display: none;
  height: 0px;
  width: 30px;
  vertical-align: top;
}
.bar.html {background-color: red;}
.bar.css {background-color: blue;}
.bar.jQuery {background-color: orange;}
.bar.premiere {background-color: purple;}
.bar.photoshop {background-color: yellow;}

.bar p {
  transform: rotate(270deg);
  margin-top: 60px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button>Go</button>
<div>
  <div class="bar html"><p>HTML</p></div>
  <div class="bar css"><p>CSS</p></div>
  <div class="bar jQuery"><p>jQuery</p></div>
  <div class="bar premiere"><p>Premiere</p></div>
  <div class="bar photoshop"><p>Photoshop</p></div>
</div>