【问题标题】:Preloading bootstrap glyphicons预加载引导字形图标
【发布时间】:2016-04-09 13:01:25
【问题描述】:

有没有办法预加载 bootstrap 的字形图标?

我有一个“下一步”按钮,按下时会显示一个旋转的“重新加载”字形。

(正常状态文本=“下一步”,按下时更改为加载微调器)

$('button#next').on('click', function nextProblem() {
    addSpinner.call($(this));
    redirectToNext();
});

function addSpinner() {
    if (!$(this).eq(0).hasClass("spinning")) {
        $(this).eq(0).html('<span class="glyphicon glyphicon-refresh spinning"></span>');
    }
}

但加载需要 245 毫秒,在此之前,什么都没有显示。

(它旨在显示“加载”状态,以防重定向需要更长的时间)。 但是现在,按钮只是变成空白(对于不超过 2xx 毫秒的正常重定向)

这不是有史以来最大的交易,但它并不漂亮

我该如何解决这个问题?

【问题讨论】:

  • 不是从JS中添加span,而是直接在HTML中添加但隐藏。然后从 JS 中取消隐藏它。您可以添加一个类 hidden 并删除它。
  • 为什么你认为字形图标还没有加载?您是否在网络调试器中看到任何显示加载时间的内容?
  • 是的,chromedevtools 向maxcdn.bootstrapcdn.com/bootstrap/3.3.5/fonts/… 显示一个 GET 请求,每次大约需要 300 毫秒

标签: javascript jquery twitter-bootstrap glyphicons


【解决方案1】:

将所需的 glyphicons 类添加到 html 标记并使用 "visibility:hidden" css 加载 html。这将加载图像。一旦加载图像,它将被浏览器缓存,因此当您在其他地方使用它时不会花费大量的时间来显示图像。

例如:

  <span style="visibility:hidden" class="glyphicon glyphicon-refresh spinning"></span>

<span class="glyphicon glyphicon-refresh spinning"></span>
**css:**
.spinning{
   visibility:hidden;
}

【讨论】:

  • CSS 中没有 display:hidden 这样的东西。使用opacity: 0.01visibility: hidden
  • 我意外输入了它。我更正了它。感谢@pierre 让我知道。
猜你喜欢
  • 2018-05-29
  • 1970-01-01
  • 2017-08-24
  • 2015-03-31
  • 2014-04-30
  • 1970-01-01
  • 2017-01-10
  • 2017-12-05
  • 2015-08-28
相关资源
最近更新 更多