javascript - 使用工具提示裁剪文本

标签 javascript css reactjs

当文本很长时,我需要裁剪它并放在末尾“...”。当我将鼠标悬停在文本上时,我需要显示带有全文的工具提示。 我正在为它编写函数,但我创建了 DOM 的隐藏元素。裁剪我正在用 css 做。可能有更简单的方法吗?

我的函数确定文本是否被裁剪。然后我选择是否显示工具提示。

const isCropText = (text: string, maxWidth: number): boolean => {
  const hiddenDiv = document.createElement('div');
  hiddenDiv.style.position = 'absolute';
  hiddenDiv.style.visibility = 'hidden';
  hiddenDiv.innerHTML = text;

  document.body && document.body.appendChild(hiddenDiv);

  const offsetWidth = hiddenDiv.offsetWidth;

  document.body && document.body.removeChild(hiddenDiv);

  return offsetWidth > maxWidth;
};

最佳答案

这是一种使用 css 实现的方法:

.tooltip {
  display: inline-block;
  background-color: #666;
  color: #CCC;
  width: 150px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.tooltip:hover {
  width:auto;
}
<div class="tooltip">
  Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
</div>

关于javascript - 使用工具提示裁剪文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46843825/

相关文章:

javascript - react native : Toggle drawer & navigation bar visibility in routes

javascript - 是否可以阻止 Silverlight 错误弹出错误对话框?

css - 背景大小 : cover bug in webkit

javascript - 如何在 AngularJS v1.3.3 中使用路由和 ng-view

css - 无法实现 -webkit-transform 以放大照片库中的图像

java - 动态Web元素不读取CSS

javascript - 在中继分页graphql上滚动时合并以前的数据

reactjs - 是否可以在类内部和方法外部声明变量

javascript - 在 JavaScript/jQuery 中用多行声明一个字符串 var

javascript - 找不到带有 sequelize 的模块模型