css 文本变换动画

kx1ctssn  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(143)

我如何在这样的段落上使用html/css转换,使它转换成两个(或更多)部分,第二部分稍微缩进?本文的第一个版本显示了初始文本,第二个版本显示了它在动画后应该如何看(忽略blockquote标记)
我如何在这样的段落上使用html/css转换,使其转换为两个(或更多)部分,第二部分稍微缩进?本文的第一个版本显示了初始文本,
第二个版本显示了它在动画之后应该如何看(忽略块引号标记)
到目前为止,我的想法涉及到从内联到内联块的变化,但我相信这种变化不能通过CSS转换来实现,一个涉及JavaScript的解决方案是可以的。

hi3rlvi2

hi3rlvi21#

我不知道我是否得到你或没有什么样的动画你想要的,但它是你正在寻找的东西?

window.addEventListener('load', () => {
  // calculate how much the second span should be pushed
  const indent = document.querySelector('.indent');
  if (indent) {
    const { left } = indent.getBoundingClientRect();
    const { offsetWidth } = indent.parentElement;
    indent.style.setProperty('--indent', offsetWidth - left + 'px');
  }
});

document.querySelector('button').addEventListener('click', () => {
  document.querySelector('p').classList.toggle('on');
});
p {
  max-width: 100%;
  overflow: hidden;
  font-size: 16px
  vertical-align: top;
}

.indent {
  margin-right: 0px;
  transition: margin-right ease-in-out 1s;
}

.indent + * {
  margin-left: 0px;
  transition: margin ease-in-out 1s;
}

.on .indent {
  margin-right: var(--indent);
}

.on .indent + * {
  margin-left: 1.5em;
}
<p>
  <span>How can i use html/css transformation on a paragraph like this so that it is transformed into two (or more) parts, the second part being slightly intended? The first version of this text shows the initial text, </span><span class="indent"></span><span>the second version shows how it should look after animation (ignoring the blockquote markers)</span>
</p>

<button>Toggle</button>

相关问题