jQuery FadeIn将内容推出位置

时间:2019-03-07 20:01:37

标签: javascript jquery html css

我构建了一个演示,该演示显示了在页面加载1秒后出现的按钮2。但是,问题在于它使按钮1的位置向上移动,但我宁愿它根本不移动。

我知道可以通过使用位置绝对值来解决此问题,而不是使用空格之间的距离等,但是我希望能够在当前CSS保持不变的情况下解决此问题。

如何解决?我试图将可见性从隐藏设置为可见,但是这样做的问题是它不会很好地淡入。谢谢,关于最佳技巧或窍门的任何想法将非常有帮助。

Codepen:https://codepen.io/anon/pen/KEWjNm

setTimeout(() => $('#btn-2').fadeIn('slow'), 1000);
div {
  background: pink;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-evenly;
  width: 100%;
  height: 100vh;
}

#btn-2 { display: none }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <button id='btn-1'>button 1</button>
  <button id='btn-2'>button 2</button>
</div>

2 个答案:

答案 0 :(得分:1)

您可以使用容器,然后每个按钮使用一个div:

容器具有样式的地方:

div.container {
      background: pink;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: space-evenly;
      width: 100%;
      height: 100vh;
    }
<div class='container'>
    <div>
      <button id='btn-1'>button 1</button>
    </div>
    <div>
      <button id='btn-2'>button 2</button>
    </div>
    </div>

答案 1 :(得分:1)

要获得预期结果,请使用不透明度的animate选项:最初对btn2使用0

setTimeout(() => $('#btn-2').animate({opacity:1}, 1000), 1000);
div {
  background: pink;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-evenly;
  width: 100%;
  height: 100vh;
}

#btn-2 { opacity: 0 }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <button id='btn-1'>button 1</button>
  <button id='btn-2'>button 2</button>
</div>

codepen-https://codepen.io/nagasai/pen/oVZrMK