Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 滚动到新生成的div的顶部_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 滚动到新生成的div的顶部

Javascript 滚动到新生成的div的顶部,javascript,jquery,html,css,Javascript,Jquery,Html,Css,因此,在我的站点中,当单击一个按钮时,我会动态生成一个div,其中包含一个图像网格。事情是这样的: $('.prod-images').click(function(){ var prodImages = generateProdImagesGrid(this); $('#prod-images-grid').html(prodImages).show(); }); 这个很好用。我有另一个按钮,点击它就会关闭这个div 现在这个div可以比屏幕高,需要垂直滚动。问题是,由于此页面中

因此,在我的站点中,当单击一个按钮时,我会动态生成一个div,其中包含一个图像网格。事情是这样的:

$('.prod-images').click(function(){
   var prodImages = generateProdImagesGrid(this);
   $('#prod-images-grid').html(prodImages).show();
});
这个很好用。我有另一个按钮,点击它就会关闭这个div

现在这个div可以比屏幕高,需要垂直滚动。问题是,由于此页面中的所有CSS/样式,此div始终仅在其关闭的滚动位置打开。因此,当我第一次打开它时,它会滚动到顶部,一切正常。现在,假设我将这个div向下滚动一半,然后关闭它。下次打开时,它将在该滚动位置打开

我试着做:

$('#prod-images-grid').html(prodImages).scrollTop(0).show();
这不起作用(至少在chrome中是这样),因为在执行scrollTop()调用时div没有完全呈现

我能做到这一点的唯一方法是在div渲染和scrollTop调用之间提供很长的延迟,如下所示:

$('#prod-images-grid').html(prodImages).show();
window.setTimeout(function(){
  $('#prod-images-grid').scrollTop(0);
},10000); //call scrollTop after 10 seconds
可以想象,这根本不是一个好的解决方案。有没有人对我如何渲染div有什么建议,这样当它可见时,它就会滚动到顶部位置?

执行以下操作:

$('#prod-images-grid').html(prodImages).scrollTop(0).show();
表示滚动的是
;由于此div没有内容,因此无法滚动。 而是:

$(document).scrollTop(0);
$('#prod-images-grid').html(prodImages).show();

当然,可以修改
scrollTop
0
参数,使其指向您希望动态生成的
div
显示的文档位置。

您可以在内容显示后处理函数,其中显示了.show()的此属性:

像这样:

$('#prod-images-grid').html(prodImages).show(1, function() {
        $('#prod-images-grid').scrollTop(0);
});

(您可以将1更改为任何其他值)

是否尝试过
$(“#prod images grid').html(prodImages.show().scrollTop(0)?@ZakariaAcharki:我相信我已经尝试过了,我现在正在再试一次……不,没有用。我相信这是应该在正常情况下…但在这一页的div是被迫…请避免张贴代码只回答,因为这些被认为是低质量的。给你的答案加上一些解释。@HenkvanBoeijen修正了,对不起我的英语。
$('#prod-images-grid').html(prodImages).show(1, function() {
        $('#prod-images-grid').scrollTop(0);
});