我在我的网站上使用带有自定义字体的 tinyscrollbar.js。在自定义字体加载完成之前脚本执行的问题,导致内容高度计算错误,部分内容在滚动区域的末端被削减。
我为此找到的唯一解决方案是使用 window.load() 而不是 document.ready() 函数加载脚本。
此解决方案的问题是滚动条在加载所有页面之前无法工作,包括不属于滚动区域内主要内容的图像。
我考虑过在字体 url 上使用 load 事件,但是每个浏览器都有一个字体文件,所以这也行不通。任何帮助请。
我在我的网站上使用带有自定义字体的 tinyscrollbar.js。在自定义字体加载完成之前脚本执行的问题,导致内容高度计算错误,部分内容在滚动区域的末端被削减。
我为此找到的唯一解决方案是使用 window.load() 而不是 document.ready() 函数加载脚本。
此解决方案的问题是滚动条在加载所有页面之前无法工作,包括不属于滚动区域内主要内容的图像。
我考虑过在字体 url 上使用 load 事件,但是每个浏览器都有一个字体文件,所以这也行不通。任何帮助请。
我为此找到的最佳解决方案是在准备好的文档上加载 tinyscrollbar 并在窗口加载时更新它。
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('#scrollbar1').tinyscrollbar({ sizethumb: 50 });
});
jQuery(window).load(function () {
jQuery('#scrollbar1').tinyscrollbar_update();
});
</script>
您可以尝试在 tinyscrollbar.js 上设置超时。只需调整“400”数字,直到它在正确的时间加载。
$(document).ready(function() {
setTimeout(function() {
//Call tinyscrollbar here
}, 400)
});
更好的方法是等到字体加载的确切时刻。例如,TypeKit 提供了三个回调,其中一个允许您在字体全部加载后立即调用另一个脚本:http: //blog.typekit.com/2010/10/18/more-control-with-typekits -字体事件/。
如果您使用的是 Typekit,这是他们提供的示例:
<script type="text/javascript" src="http://use.typekit.com/xxxxxxx.js"></script>
<script type="text/javascript">
try {
Typekit.load({
loading: function() {
// Javascript to execute when fonts start loading
},
active: function() {
// Javascript to execute when fonts become active
},
inactive: function() {
// Javascript to execute when fonts become inactive
}
})
} catch(e) {}
</script>
active
当 TypeKit 处于该状态时,您会想调用 tinyscollbar 。