📜  颤动中心标题忽略按钮 (1)

📅  最后修改于: 2023-12-03 15:12:53.329000             🧑  作者: Mango

颤动中心标题忽略按钮

简介

程序员在开发中常常需要处理标题文字,有时候标题文字过长会导致页面排版混乱。解决方案之一是使用截断字符串或缩写标题的方法。然而,在某些情况下,将标题缩短可能会导致信息的丢失。为此,我们可以使用“颤动中心标题忽略按钮”,这是一种优雅地解决标题过长问题的工具。

实现

在实现“颤动中心标题忽略按钮”时,我们使用了 JavaScript 和 CSS 技术。我们通过计算标题的宽度和文本量来确定是否需要显示该按钮。如果标题超出了指定的宽度,我们就会在标题后面添加一个省略号,并插入一个按钮。当用户点击该按钮时,标题文本就会快速抖动几次,然后展示完整的文字。

下面是具体实现思路:

  1. 计算标题宽度和文本量。
  2. 如果标题宽度超出指定值,就截断字符串并添加省略符。
  3. 在标题的后面插入“颤动中心标题忽略按钮”。
  4. 当按钮被点击时,标题文本会快速颤动几次,并展示完整的标题。

这个功能需要注意:

  1. 必须为标题设定一个最大宽度。如果标题宽度不确定,会导致“颤动中心标题忽略按钮”出现意外情况。
  2. 必须确保在使用“颤动中心标题忽略按钮”的时候不会丢失信息。换言之,缩短标题必须是缩减数量,而不是内容的重要部分。
  3. 要考虑不同浏览器对样式的兼容性。在测试过程中同时使用不同的浏览器以确保功能的稳定性。
示例

以下是一个示例。在这个示例中,我们使用了 Bootstrap 中的 btn-danger 样式,在页面上创建了一个按钮。

<h1 class="text-justify">
  This is a long title that needs to be truncated
  <button class="btn btn-danger btn-sm" id="shake-center-title-button">
    <i class="fas fa-stop"></i>Ignore
  </button>
</h1>

下面是对应的 CSS 和 JavaScript 代码块:

#shake-center-title-button {
  margin-left: 5px;
}
const titleElement = document.querySelector('h1');
const titleMaxWidth = 300;

if (titleElement.offsetWidth > titleMaxWidth) {
  const originalTitle = titleElement.textContent.trim();
  const truncatedTitle = originalTitle.substring(0, 20).trim() + '...';
  titleElement.textContent = truncatedTitle;

  const shakeButton = document.createElement('button');
  shakeButton.setAttribute('class', 'btn btn-danger btn-sm');
  shakeButton.setAttribute('id', 'shake-center-title-button');
  shakeButton.innerHTML = '<i class="fas fa-stop"></i> Ignore';
  shakeButton.onclick = () => {
    titleElement.textContent = originalTitle;
    shakeButton.blur();
    shakeCenterTitle();
  };

  titleElement.insertAdjacentElement('afterend', shakeButton);
}
效果展示

以下是“颤动中心标题忽略按钮”的具体效果:

演示地址:https://codepen.io/danielkx/pen/MWbwVeg

总结

“颤动中心标题忽略按钮”是一个非常实用的功能,适用于那些有长标题的页面或应用程序。它可以避免截断重要信息,并以一种优雅的方式展示完整的标题。但是,需要谨慎地使用这个功能,确保不会丢失信息。在使用之前,必须要充分考虑劣化情况。情况良好的话,这个功能可以提高用户体验,增加应用程序的质量并且增加用户留存率。