如何在谷歌字体加载时显示加载图像
How to show a loading image while google font loading?
我使用的是谷歌字体api。在document.ready中,我请求了谷歌字体集合,并用所有可用的字体系列填充选择列表。现在,当用户从选择列表中选择任何字体时,我只需在文档中添加请求所选字体的链接,并显示字体预览。但是我正在尝试在字体加载时显示加载图像以进行预览。我的代码:
$("#ff").selectmenu({ select: function () {
var img = $("<img />").attr("src", "/images/load.gif");
$(".preview").append(img);
$('body').append("<link rel='stylesheet' href='https://fonts.googleapis.com/css?family=" + escape($(this).val()) + "' type='text/css' media='all' />");
$(".preview").css({ fontFamily: $(this).val() });
$(img).remove();
}
});
但是加载图像没有显示,因为可能是链接标签异步请求字体。如何在字体完全加载之前显示加载图像?
javascript:捕获LINK 上的加载事件
在我看来,以下是解决这个问题的更好方案使用IMG标记及其oneror事件。这种方法可以完成任务不循环,不执行扭曲的风格遵守,也不在中加载文件iframe等。该解决方案在加载文件时正确启动,如果文件已经缓存(具有讽刺意味的是比大多数DOM加载事件如何处理缓存的资产要好)。这是一个在我的博客上发布解释方法的帖子-Back Alley Coder帖子-我只是厌倦了没有合法的解决方案,享受吧!
var loadCSS = function(url, callback){ var link = document.createElement('link'); link.type = 'text/css'; link.rel = 'stylesheet'; link.href = url; document.getElementsByTagName('head')[0].appendChild(link); var img = document.createElement('img'); img.onerror = function(){ if(callback) callback(link); } img.src = url;
}
请投票支持他的回应,确保他得到赞扬。
相关文章:
- 如何在谷歌字体加载时显示加载图像
- 预加载图像并插入DOM
- 加载图像时加载图标
- 在页面启动期间加载图像
- 预加载图像image.onload脚本MVC
- 可以't在我的React组件中加载图像
- 加载图像后调整HTML画布的大小
- HTML/JS github页面项目没有't在使用firefox运行时加载图像或声音
- 错误:$injector:modulerr加载图像时模块处于角度
- 谷歌地图加载后隐藏加载图像
- 在照片查看器(Javascript和jQuery)中异步加载图像时可能出现错误
- 正在从字节数组加载图像内容
- 网页上已有tinymce加载图像列表
- 单击提交按钮后加载图像将冻结
- 如何使用Express'正确加载图像;s的静态中间件
- 使用jquery即时加载图像
- Html5画布使用JCanvasScript加载图像
- Javascript使用JCanvaScript在画布中加载图像
- 使用jquery/ajax显示加载图像
- ajax缓存false无法加载图像