动画在窗口调整大小上定位

时间:2018-08-05 08:02:58

标签: html css animation position

我想知道是否可以使用jquery window.resize()来确保两个甜甜圈的位置不会与中间的主文本发生冲突。我不确定如何链接窗口大小的x和y来更改顶部/左侧和底部/右侧的定位值。

或者有什么方法可以在调整窗口大小时减小甜甜圈的宽度和高度?

任何帮助将不胜感激!

html, body {
  margin: 0;
}

#container {
  width: 100vw;
  height: 100vh;
  background-color: pink;
  display: flex;
  align-items: center;
  overflow: hidden;
  position: relative;
}

#donut img,
#donut2 img {
  width: 500px;
  height: 500px;
}

#donut {
  width: auto;
  height: auto;
  position: absolute;
  animation: donut 2s;
  animation-fill-mode: forwards;
}

@keyframes donut {
  0% {
    left: -20%;
    top: -20%;
    transform: translateZ(-100px);
  }
  100% {
    left: -5%;
    top: -5%;
    transform: translateZ(100px);
  }
}

#donut2 {
  width: auto;
  height: auto;
  position: absolute;
  animation: donut2 2s;
  animation-fill-mode: forwards;
}

@keyframes donut2 {
  0% {
    right: -20%;
    bottom: -20%;
    transform: translateZ(-100px);
  }
  100% {
    right: -5%;
    bottom: -5%;
    transform: translateZ(-100px);
  }
}

#homeText {
  width: 100%;
  height: auto;
  text-align: center;
  font-size: 30px;
}
<div id="container">
  <div id="donut">
    <img src="https://upload.wikimedia.org/wikipedia/commons/a/a5/Glazed-Donut.jpg">
  </div>

  <div id="homeText">
    <p>
      Reward Points
    </p>

    <p>Get Your Daily Sweet Rewards</p>
  </div>

  <div id="donut2">
    <img src="https://upload.wikimedia.org/wikipedia/commons/a/a5/Glazed-Donut.jpg">
  </div>
</div>

1 个答案:

答案 0 :(得分:0)

请尝试一下。我认为这应该可行:-

#container {
  width: 100vw;
  height: 100vh;
  background-color: pink;
  display: flex;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
}

#donut { width:30vw; }
#donut2 { width:30vw; }
#donut2 img, #donut img {
  width: 100%;
  max-width:100%;
  height:auto;
}

#donut {
  position: absolute;
  animation: donut 2s;
  animation-fill-mode: forwards;
}

@keyframes donut {
  0% {
    left: -5%;
    top: -5%;
    transform: translateZ(-100px);
  }
  100% {
    left: 5%;
    top: 5%;
    transform: translateZ(100px);
  }
}

#donut2 {
  position: absolute;
  animation: donut2 2s;
  animation-fill-mode: forwards;
}

@keyframes donut2 {
  0% {
    right: -5%;
    bottom: -5%;
    transform: translateZ(-100px);
  }
  100% {
    right: 5%;
    bottom: 5%;
    transform: translateZ(-100px);
  }
}

#homeText {
  width: 25vw;
  height: auto;
  text-align: center;
  font-size: 30px;
}