代码之家  ›  专栏  ›  技术社区  ›  Adrian

缩放导致奇怪的反弹运动

  •  0
  • Adrian  · 技术社区  · 7 年前

    其他一切看起来都是正确的。顶部和右侧看起来分别平稳地向底部和左侧移动,而底部则完全不移动。

    这里发生了什么?为什么左边在动?

    .shrink {
      border-style: solid;
      border-width: 1px;
      animation-name: title-min;
      animation-duration: 1s;
      animation-iteration-count:infinite;
      animation-timing-function: linear;
      animation-fill-mode: forwards;
    }
    
    @keyframes title-min
    {
      from { transform: scale(1); }
      to { transform: scale(.7); transform-origin: 0% 100% 0; }
    }
    <body>
      <h1 class="shrink">
        Hello
      </h1>
    </body>

    2 回复  |  直到 7 年前
        1
  •  0
  •   Scopestyle    7 年前

    尝试将变换原点放置在 .shrink 班级。

    .shrink {
      border-style: solid;
      border-width: 1px;
      transform-origin: bottom left;
      animation-name: title-min;
      animation-duration: 1s;
      animation-iteration-count:infinite;
      animation-timing-function: linear;
      animation-fill-mode: forwards;
    }
    
    @keyframes title-min
    {
      from { transform: scale(1); }
      to { transform: scale(.7); }
    }
    <body>
      <h1 class="shrink">
        Hello
      </h1>
    </body>
        2
  •  0
  •   Adrian    7 年前

    哦。哼!变换起点和终点不同。这样做可以解决问题。

    .shrink {
      border-style: solid;
      border-width: 1px;
      animation-name: title-min;
      animation-duration: 1s;
      animation-iteration-count:infinite;
      animation-timing-function: linear;
      animation-fill-mode: forwards;
    }
    
    @keyframes title-min
    {
      from { transform: scale(1); transform-origin: 0% 100% 0; }
      to { transform: scale(.7); transform-origin: 0% 100% 0; }
    }
    <body>
      <h1 class="shrink">
        Hello
      </h1>
    </body>