当鼠标单击正文中的任何位置时,页面向上滚动

Page Scroll Up when mouse click on anywhere in body

本文关键字:滚动 位置 单击 鼠标 正文 任何      更新时间:2023-09-26

我的主页有如下代码。我调用了一个Javascript函数onpage load。在blink函数中,输入文本在特定的时间间隔内闪烁。

<body onload="blink()";/>
 <form>
  <input autocomplete="off" onkeydown="if (this.value=='xxx xxx xxx ?') this.value='';StopBlinking();" type="text" class="search_input" name="searchword" id="searchword" onKeyup="request(event);" value="xxx xxx xxx ?" onclick="if (this.value=='xxx xxx xxx ?') this.value='';StopBlinking();" onfocus="if (this.value=='xxx xxx xxx ?') this.value='';StopBlinking();" onblur="if (this.value=='') this.value='xxx xxx xxx ?';"/>
  <div class="clicked-area">
     ....Did something.....
  </div>
  </form>
</body>
<script>
function blink() {
   document.getElementById("searchword").focus();
     if(document.getElementById("searchword").value == "XXX XXX XXX XXX")
     {
       document.getElementById("searchword").value = "";
     } else if( document.getElementById("searchword").value == "" ){
        document.getElementById("searchword").value = "XXX XXX XXX XXX";
     }
     timer = setTimeout("blink()", 500);
}
function StopBlinking()
{
  clearTimeout(timer);
}
</script>

在这个页面中,当我在div上点击任何地方时,"clicked-area"出乎意料地我的页面正在滚动到顶部。

但是当我从脚本"timer = setTimeout("blink()", 500);",中删除超时方法时,它不会发生。有人能帮我解决这个问题吗?

为什么一开始要移除眨眼功能?如果你的主要目标是在click -area被点击时将页面移动到顶部你可以在点击

时将函数移动到click -area
<div class="clicked-area" onclick="blink()">

function blink() {
document.getElementById("searchword").focus();
}

我认为这很正常。当使用脚本聚焦输入时,整个页面需要滚动到输入的位置。

你点击输入之外的任何地方,你使它失去焦点。然后blink()再次运行,输入得到"重新聚焦"。然后整个页面向上滚动(因为输入在顶部)。

如果你试着在输入和点击区域div之间放一堆br标签,这样页面会更长,你会看到更明显的效果

输入是否需要始终集中?