首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >交换多个div,因此一个类在所有元素下面,另一个类具有可见动画。

交换多个div,因此一个类在所有元素下面,另一个类具有可见动画。
EN

Stack Overflow用户
提问于 2016-01-23 07:35:51
回答 1查看 386关注 0票数 0

我在一个页面上有多个div,它们有不同的类,名为position-1position-2position-3

代码语言:javascript
复制
.position-1 {
  background-color: red;
}
.position-2 {
  background-color: lightblue;
}
.position-3 {
  background-color: yellow;
}
.position-4 {
  background-color: lightgreen;
}
代码语言:javascript
复制
<div class="position-1">
  <p>this div has the class position-1.</p>
</div>
<div class="position-3">
  <p>this div has the class position-3.</p>
</div>
<div class="position-2">
  <p>this div has the class position-2.</p>
</div>
<div class="position-4">
  <p>this div has the class position-4.</p>
</div>
<div class="position-2">
  <p>this div has the class position-2.</p>
</div>
<div class="position-3">
  <p>
    this div has the class position-3.</p>
</div>
<div class="position-1">
  <p>
    this div has the class position-1.</p>
</div>
<div class="position-4">
  <p>this div has the class position-4.</p>
</div>

小提琴手

我想要能够视觉动画的八个div,以便命名的位置-1是首先,然后位置-2,然后位置3,等等,当用户按下按钮。我不介意使用jquery。我对动画非常陌生,所以我不知道如何开始。

编辑:一个函数最有用

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-23 18:08:33

您可以将其分组到一个父类下,对数组进行排序,然后使用jquery.animate函数对其进行动画化。

我还将div.position-N CSS位置更改为绝对

'top' : i * 30为20 is高度+10 is底部边缘。

代码语言:javascript
复制
var anim = $('.animation > div');

// set default position
$.each(anim, function(i,e) {
    $(this).css('top',i * 30);
});

$('#clickme').click(animateDiv);

function animateDiv() {

    anim.sort(function (a, b) {     
        if (a.className > b.className) {
            return 1;
        }
        if (a.className < b.className) {
            return -1;
        }
        return 0;
    });

    $.each(anim, function(i,e) {
        $(e).animate({
            'top' : i * 30
        },1500); // duration
    });

}
代码语言:javascript
复制
.animation {
  position: relative;
}
.animation > div {
  position: absolute;
  width: 100%;
  height: 20px;
  top: 0;
}
.animation p {
  margin: 0;
}
.position-1 {
  background-color:red;
  top: 0;
}
.position-2 {
  background-color:lightblue;
}
.position-3 {
  background-color:yellow;
}
.position-4 {
  background-color:lightgreen;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<input type="button" id="clickme" value="Click Me" />
<div class="animation">
  <div class="position-4">
    <p>this div has the class position-4.</p>
  </div>
  <div class="position-3">
    <p>this div has the class position-3.</p>
  </div>
  <div class="position-3">
    <p>
      this div has the class position-3.</p>
  </div>
  <div class="position-1">
    <p>
      this div has the class position-1.</p>
  </div>
  <div class="position-4">
    <p>this div has the class position-4.</p>
  </div>
  <div class="position-1">
    <p>this div has the class position-1.</p>
  </div>
  <div class="position-3">
    <p>this div has the class position-3.</p>
  </div>
  <div class="position-2">
    <p>this div has the class position-2.</p>
  </div>
  <div class="position-4">
    <p>this div has the class position-4.</p>
  </div>
  <div class="position-2">
    <p>this div has the class position-2.</p>
  </div>
  <div class="position-3">
    <p>
      this div has the class position-3.</p>
  </div>
  <div class="position-1">
    <p>
      this div has the class position-1.</p>
  </div>
  <div class="position-4">
    <p>this div has the class position-4.</p>
  </div>
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34960890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档