动态字体面从压缩文件
Dynamic font faces from zipped file?
经过几个小时的尝试,我开始认为这可能比它的价值更多的工作,但这里是:
我的用户正在上传包含.woff文件的压缩文件。在页面加载时,我需要逐一检查这些压缩记录,并使用它们的.woff文件作为动态@font-face.
的src。那么,最终目标应该是这样的:
<style type="text/css">
{% for font in fonts %}
@font-face {
font-family: "{{ font.name }}";
src: url({{ font.woff_file }});
}
{% endfor %}
</style>
我开始弄乱zip.js,但是没有太多的运气,文档也很有限。我怎么能做这种事?这样做是否值得,或者我是否应该强迫用户在压缩文件之外上传一个。woff文件(我已经这样做了,当然它工作得很好)
你的帖子听起来很有趣,因为它加入了很多新功能,所以我决定尝试一下,但是下次试着提供更多的信息和一个jsfiddle或与你到目前为止的工作相互依存;
这个伟大的技巧是使用数据URI这样我们可以存储我们从文件解压缩的字体文件,并在@font-face规则中使用它们。一旦我们得到了字体文件的条目我们就得到它data:
fontEntry.getData(new zip.Data64URIWriter(fontMimeType), function(data){ appendFontFace(data, fontType); });
并使用它在@font-face规则中追加:
function appendFontFace(dataUrl, fontType){
var fontFace = document.createTextNode("'
@font-face {'
font-family: 'font-name';'
src: url('" + dataUrl + "') format("+fontType+");'
}'
");
//remove the previous font-face if any
if(style.childNodes.length > 0)
style.removeChild(style.childNodes[0]);
style.appendChild(fontFace);
}
你可以检查它的工作:http://codepen.io/luizgrs/pen/zAxly
相关文章:
- grunt上的压缩文件夹不起作用
- express js 4.4.1中的压缩文件(gzip)
- 临时解压缩文件以在浏览器中查看内容
- 使用.htaccess压缩文件时出现500错误
- 如何在JS Uglify2中尽可能多地压缩文件
- 一个压缩文件或多个文件中的所有Javascript
- 如何压缩文件 上传
- 如何创建文件夹,此文件夹中的文件,压缩文件夹(在zip或rar文件中)并使用Javascript将其上传到桌面
- 使用拼音间隙解压缩文件
- 使用Javascript如何在移动设备上从使用PhoneGap构建的应用程序中解压缩文件
- 如何在javascript上解压缩文件
- 节点:res.download下载空的压缩文件夹
- 如何在 node js 应用程序中压缩文件夹并在 zip 下载开始后
- 使用Ajax Minfy工具压缩文件
- 使用Ajax Minfy缩小和压缩文件
- 用JavaScript解压缩文件
- 动态字体面从压缩文件
- 提取包含符号链接的压缩文件
- 在javascript中使用JSZIP提取压缩文件
- 使用Gulp Zip压缩文件夹中的所有文件