保留分割成单独 HTML 元素的一行文本的字体间距
P粉258083432
P粉258083432 2023-09-10 18:37:01
0
1
624

我正在尝试重新创建一种常见技术,将单词拆分为单独的 HTML 元素,以便可以通过动画单独定位它们。

我遇到的问题是,当它们分成单独的元素时,我会失去单词之间的间距。通过在每个单词后面加上   进行渲染,或者向每个元素添加填充,我可以添加间距,但我想知道是否有一种方法可以做到这一点,而无需手动添加间隔/将它们弯曲到容器上并可以保留原始间距?

我知道有像 gsap SplitText 这样的插件,但我希望有非插件解决方案。

代码笔在这里。

const App = () => {
  const line = 'this is a line of text.';
  const renderLine = line.split(' ').map((word, i) => {
    return (
      <span key={i}>{word}&nbsp;</span>
    )
  })

  return (
    <h1>{renderLine}</h1>
  )
}

P粉258083432
P粉258083432

全部回复(1)
P粉384679266

您可以使用正则表达式 /\b/ 这将搜索单词边界并按单词和空格分割行。

function App() {
  const line = "this is a line of text.";
  const renderLine = line.split(/\b/).map((word, i) => {
    return <span key={i}>{word}</span>;
  });

  return <h1>{renderLine}</h1>;
}

ReactDOM.createRoot(document.getElementById("root")).render(<App />);
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.2.0/umd/react.development.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.2.0/umd/react-dom.development.js"></script>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!