我的smoothscroll插件无法正常工作,因为图像在滚动开始之前尚未完成加载。我试图将hashchange
函数包装在窗口加载函数中,但它似乎没有等待窗口到加载。
编辑: 它不起作用,因为在页面滚动之前页面的高度不正确。
$(document)
.on('click', 'a[href*="#"]', function() {
if ( this.hash && this.pathname === location.pathname ) {
$.bbq.pushState( '#/' + this.hash.slice(1) );
return false;
}
})
$(window).load(function() {
$(window).bind('hashchange', function(event) {
var tgt = location.hash.replace(/^#\/?/,'');
if ( document.getElementById(tgt) ) {
$.smoothScroll({scrollTarget: '#' + tgt});
}
});
$(window).trigger('hashchange');
});
任何帮助都会很棒。
答案 0 :(得分:1)
您还可以使用我经常使用的https://github.com/alexanderdickson/waitForImages插件 - 特别是如果页面加载了ajax
答案 1 :(得分:0)
我过去遇到过类似的问题。在弹出窗口中加载图像之前执行print命令的位置。可能它可以帮助你
[Js Fiddle Link] [1]
[1]: http://jsfiddle.net/Q5Xc9/685/
答案 2 :(得分:-1)
您可以将功能包装在
中$( document ).ready(function() {
//all your code here
});
答案 3 :(得分:-1)
我认为你可以使用 body 元素的 onLoad 事件。在此活动中,所有HTML标记以及图像都会加载到bowser上。
function onload()
{
// your logic here
}
希望它有所帮助...
注意:HTML文档只能有一个 onload()方法实现。