更新div内容时避免浏览器自动滚动

时间:2018-06-09 09:35:26

标签: javascript html css

我正在实施一个包含动态内容的网页。特别是,我有一个“div”,我用以下方式更新其内容:

这是“div”:

<div id="informationONDevices"></div>

我继续删除其内容:

document.getElementById("informationONDevices").innerHTML = "";

最后,我在原来的“div”中插入“divs”(后面的代码在循环中):

var element  = document.createElement("div");

element.innerHTML = "<h3>Dades de la sonda amb ID: " + this.responseXML.getElementsByTagName('addONDevices')[count1].childNodes[0].nodeValue + " i Alias: " + this.responseXML.getElementsByTagName('aliasONDevices')[count1].childNodes[0].nodeValue + "</h3>" + "<br><br>"
+ "<span class='title'>Actual</span><br>";

document.getElementById("informationONDevices").appendChild(element);

问题在于每次更新“div”的内容时,页面都会自动滚动并且不会停留在原来的位置。有解决方案吗我一直在寻找和尝试很多事情,没有人帮助过我。

非常感谢!

1 个答案:

答案 0 :(得分:0)

花了几个小时搜索信息之后,我决定尝试一下。 这是解决方案:

var oldPositionSB = window.pageYOffset;

document.getElementById("informationONDevices").innerHTML = "";

…

document.getElementById("informationONDevices").appendChild(element);

window.scrollTo(0, window.pageYOffset + (oldPositionSB - window.pageYOffset));