我正在使用一个特定模板的Squarespace网站,该模板使用索引页面和子页面作为索引页面的内容(这些页面可以一个接一个地滚动)。我猜测Squarespace在使用锚点从索引页面滚动到相关页面。
我添加了一个javascript来显示当前时间并每秒更新一次(moment.js和moment-timezone)。我使用SetInterval(function_name,1000)每秒更新一次时间。
时间每秒都在正确更新。然而,这导致我正在更新时间的特定页面在尝试向上或向下滚动时保持焦点(每秒都会发生)。因此,如果我尝试从正在更新时间的那个页面向上或向下滚动,它会每秒自动滚回到该页面!!。
似乎每秒都会触发一个事件导致这种情况发生。我每秒调用的实际函数如下:
因此,我所做的就是更改特定HTML元素的innerHTML以显示当前时间。
我按照以下方式调用上述函数:
然而,正如我所说的,通过SetInterval对上述函数进行重复调用会导致网页每秒自动滚动到网站的这个部分(联系人页面)!!
我添加了一个javascript来显示当前时间并每秒更新一次(moment.js和moment-timezone)。我使用SetInterval(function_name,1000)每秒更新一次时间。
时间每秒都在正确更新。然而,这导致我正在更新时间的特定页面在尝试向上或向下滚动时保持焦点(每秒都会发生)。因此,如果我尝试从正在更新时间的那个页面向上或向下滚动,它会每秒自动滚回到该页面!!。
似乎每秒都会触发一个事件导致这种情况发生。我每秒调用的实际函数如下:
function showLocalTime() {
var momentLondon = moment().tz("Europe/London").format('HH:mm:ss z');
// The location label HTML
var locationHTML = '<strong>Location</strong><br>';
// The HTML string for london, England
var londonHTML = 'London, England';
$( "p:contains('London, England')" ).html(locationHTML + londonHTML + ' (' + momentLondon + ')');
}
因此,我所做的就是更改特定HTML元素的innerHTML以显示当前时间。
我按照以下方式调用上述函数:
<script>
$(function() {
document.addEventListener("DOMSubtreeModified", function(){
return;});
window.setInterval(showLocalTime, 1000); // update it periodically
});
</script>
然而,正如我所说的,通过SetInterval对上述函数进行重复调用会导致网页每秒自动滚动到网站的这个部分(联系人页面)!!
我可以看到每次调用上述函数时都会触发一个名为DOMSubtreeModified的事件。我添加了一个自定义监听器来监听DOMSubtreeModified事件,但仍然遇到了相同的问题。
可能是由于某种重绘事件引起的?无论如何,我似乎无法找到问题并且无法解决这个问题。
任何帮助将不胜感激!!
谢谢
SetInterval
调用此函数的代码? - EhsanT$( "p:contains('London, England')" ).text(..)
而不是.html()
,看看它是否仍然可以滚动。 - user5542121