我有一个单页网站,有很多容器。
每个容器的内容通过ajax加载(异步,意味着不是每个容器都同时填充数据)。
容器的动态高度(高度:自动)。
网站由智能路由系统控制(如果您输入特定网址,网站会在加载时滚动到指定元素)。
如何在其他容器加载时滚动到容器(例如容器5)和将此容器保持在相同的滚动位置(应该可以通过用户滚动进行更改)?如果容器具有固定的高度,整个工作没有任何问题,但目前,滚动位置会在每次装载或更换任何容器时发生变化。
您是否知道插件或解决此问题的好方法?
问题示例:http://jsfiddle.net/b6sno9cv/
// Global variable to define start-container:
var initialWidgetIdx = 10;
预期结果:
滚动到容器10并保持在那里(此容器上的滚动位置),即使其他容器未完全加载。
(每个容器加载后(现在有固定高度),滚动没有任何问题)
答案 0 :(得分:0)
您可以使用offsetHeight
来获取元素的高度。在您的情况下,您可以检查ajax请求中div的高度,然后使用scrollBy
,就像这样
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState != 4) return
if (xmlhttp.status == 200) {
//do some stuff you need
var scroll_value = document.getElementById('div_that_loaded').offsetHeight();
window.scrollBy(0,scroll_value);
}
}