Javascript 在滚动到div时是否有防止页面跳转(加载图像)的方法?

Javascript 在滚动到div时是否有防止页面跳转(加载图像)的方法?,javascript,jquery,html,Javascript,Jquery,Html,我在页面加载时使用以下代码平滑地滚动到div $(document).ready(function() { $('html,body').delay(50).animate({scrollTop:jQuery('#3342').position().top-10}, 'slow'); }); 将页面平滑地滚动到预定义的div id(在本例中为div id=3342,但实际的div id会根据用户单击的按钮而变化)效果非常好 问题是,如果div 3342上方的页面中有任何

我在页面加载时使用以下代码平滑地滚动到div

$(document).ready(function() {   

      $('html,body').delay(50).animate({scrollTop:jQuery('#3342').position().top-10}, 'slow'); 

});
将页面平滑地滚动到预定义的div id(在本例中为
div id=3342
,但实际的div id会根据用户单击的按钮而变化)效果非常好

问题是,如果div 3342上方的页面中有任何图像,那么在滚动完成后,页面将跳转,整个定位滚动将无效,因为该内容不再显示在屏幕上

顺便说一句,这是在mobile safari上。我知道Google chrome最近引入了滚动定位,我相信这就是我试图以某种方式复制的功能

仅供参考,我无法提前知道图像的大小或图像大小的比例。它们是来自网络上的随机图像

谢谢

编辑:我不想更改为window/load事件,因为这意味着我必须等待所有图像首先加载,这将在某些页面上严重延迟滚动事件

编辑:图像URL都在源页面上,在完成之前,没有ajax加载页面:

$(document).ready(function() {   

  var div = jQuery('#3342');
  var complete = false;
  function adjust () {
    if (!complete) {
      $('html,body').delay(50).animate({scrollTop:div.position().top-10}, 'slow', adjust);
    } else {
      $('html,body').delay(50).animate({scrollTop:div.position().top-10}, 'slow');
    }
  }
  adjust();

  $(window).on('load', function () {
    complete = true;
  });


});

将“文档”更改为“窗口”。但它不会立即滚动。@Michael
$(窗口)。ready
与窗口加载事件不同。将没有不同的效果,具体取决于图像内容源是什么。是在页面源代码中,还是也加载了ajax内容?@charlietfl图像内容在页面源代码中,根本没有ajax加载图像。感谢
ready
事件在加载图像之前发生。。。。窗口加载事件发生在加载它们之后,当它们存在于原始源HTMLM中时,非常简单,只需交换
$(文档)。为
$(窗口)准备好
。在('load'
)上。其余的只是将其过度复杂化