Javascript 滚动到新生成的div的顶部
因此,在我的站点中,当单击一个按钮时,我会动态生成一个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可以比屏幕高,需要垂直滚动。问题是,由于此页面中
$('.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);
});