我的主页有如下代码。我调用了一个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);",
中删除超时方法时,它就没有发生。任何人都可以帮我解决这个问题。
答案 0 :(得分:0)
为什么要首先删除闪烁功能?如果您的主要目标只是在单击区域时单击顶部页面,则可以在单击时单击区域上移动该功能
<div class="clicked-area" onclick="blink()">
function blink() {
document.getElementById("searchword").focus();
}
答案 1 :(得分:0)
我认为这很正常。当输入使用脚本聚焦时,整个页面需要滚动到输入的位置。
您点击输入外的任何地方,就会失去焦点。然后blink()
再次运行,输入“重新聚焦”。整个页面然后向上滚动(因为输入在顶部)。
如果您尝试在输入和单击区域div之间放置一堆br标签,以便页面更长,您会更明显地看到效果。
输入是否需要始终关注?