我有一个页面,充满了DIV标签。在页面加载时,我需要浏览器自动滚动到预先指定的DIV。
我已经半成功地用以下方法实现了它:
$('html,body').animate({scrollTop:jQuery('#mydiv').position().top}, 'slow');
问题在于,如果页面包含#mydiv上方的图像,则滚动将不太准确。这是因为当图像加载时,浏览器会向下推内容(包括#mydiv)(在Safari中)。
对我无效的解决方法:
1)给所有图像设置固定的宽度和高度,这样浏览器就提前知道它们的尺寸,不会在加载时向下推内容。但这对我无效,因为这些图像来自互联网各地,而不是托管在我的服务器上,所以我事先不知道它们的尺寸(这些是用户提交的照片)。
2)在页面完全加载后运行页面滚动。这对我也不可行,因为图像需要几秒钟才能加载(有很多很多图像),在此期间用户将开始滚动他的浏览器窗口,然后它将突然跳到#mydiv。这对用户来说非常混乱和令人沮丧。
我希望得到任何想法/指针/其他解决方案的代码?还是我...无法实现我想要的目标?