首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动画中最大宽度与绝对左侧匹配

动画中最大宽度与绝对左侧匹配
EN

Stack Overflow用户
提问于 2022-07-03 04:29:04
回答 1查看 34关注 0票数 0

我在做一条蠕虫,蠕虫从A位置移动到B位置,目的是让蠕虫的“身体”延伸到B位置,“尾巴”在到达B后收缩。

目前,我正在扩展蠕虫的最大宽度,然后将绝对左边的位置移动到我所扩展的蠕虫的确切数量。因此,如果蠕虫扩展为20 if,则整个蠕虫收缩后的绝对左侧为20 if。

我很难弄清楚如何“保持”B位,同时收缩蠕虫的尾巴。我能够同时扩张和收缩身体,但我想把这两个动作分开。只有在头部到达B位置后,尾巴才会收缩。

代码:http://jsfiddle.net/gamealchemist/U2tPJ/79/

代码语言:javascript
复制
<div class='worm'>
              <div class='worm-eye'>
                <div class='worm-lid' />
                <div class='worm-iris'>
                  <div class='worm-iris-container'>
                    <div class='worm-iris-glow' />
                  </div>
                </div>
              </div>
            </div>
代码语言:javascript
复制
.worm {
  position: absolute;
  top: 30px;
  left: 50px;
  width: 30vw;
  height: 30vw;
  max-width: 100px;
  max-height: 100px;
  background-color: aquamarine;
  border-radius: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  animation: move-worm 3s ease-in-out;
  animation-fill-mode: forwards;
}

@keyframes move-worm {
  0% {max-width: 100px; }
  50% { max-width: calc(20vw + 100px); }
  100% {max-width: 100px; left: calc(20vw); }
}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-03 06:02:32

左右CSS属性是可动画的,所以我们可以使用它们来首先修复左边,然后移动右侧,然后再移动左边,而不是动画的最大宽度。

代码语言:javascript
复制
.worm {
  position: absolute;
  top: 30px;
  left: 50px;
  right: calc(50px + 100px);
  height: 100px;
  background-color: aquamarine;
  border-radius: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  animation: move-worm 3s ease-in-out;
  animation-fill-mode: forwards;
}

@keyframes move-worm {
  0% {
    left: 50px;
    right: calc(100vw - 50px - 100px);
  }
  50% {
    left: 50px;
    right: calc(100vw - 50px - 100px - 20vw);
  }
  100% {
    left: calc(20vw + 50px);
    right: calc(100vw - 50px - 100px - 20vw)
  }
}
代码语言:javascript
复制
<div class='worm'>
  <div class='worm-eye'>
    <div class='worm-lid' />
    <div class='worm-iris'>
      <div class='worm-iris-container'>
        <div class='worm-iris-glow' />
      </div>
    </div>
  </div>
</div>

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

https://stackoverflow.com/questions/72843920

复制
相关文章

相似问题

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