假设你能够使用jQuery,请尝试以下操作:
http://abeautifulsite.net/blog/2010/01/smoothly-scroll-to-an-element-without-a-jquery-plugin/
只需将脚本并传递解雇你的回发事件的控件的ID。
如果你不能使用jquery出于某种原因,这里是一个不太雅致的方法:
http://clifgriffin.com/2008/10/14/using-javascript-to-scroll-to-a-specific-elementobject/
编辑(样品):
下面是使用jQuery直HTML的例子方法,假定您在与html页面相同的文件夹中有一个名为jquery.js的脚本文件。
<html>
<head>
<script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
$('html,body').animate({
scrollTop: $('#scrollHere').offset().top
}, 0//increase for smooth, visible scroll
);
});
</script>
</head>
<body>
<div style='width:100px; height:1000px; background-color:red;'>
top filler
</div>
<a id='scrollHere' href='#'>Scrolls to this element</a>
<div style="width:100px; height:1000px; background-color:blue;">
bottom filler
</div>
</body>
</html>
这里是你可以通过任何可见的页面控制的“客户端ID”属性,它将寄存器的JavaScript滚动到在页加载的元件的客户端的方法的示例(假设jQuery是注册在页面上,只注册每个请求一个呼叫):
private void ScrollToControl(string controlId)
{
//scroll to button
string script =
"$(document).ready(function() {" +
"$('html,body').animate({ " +
"scrollTop: $('#" + controlId + "').offset().top " +
"}, 0);" +
"});";
if (!Page.ClientScript.IsStartupScriptRegistered("ScrollToElement"))
Page.ClientScript.RegisterStartupScript(this.GetType(), "ScrollToElement", script, true);
}
+1 - 只需使用jQuery( - : – Murph
jQuery是好,但我无法弄清楚如何使用这个,你能不能给我更多。详细信息。一个工作的例子会很好。 –
感谢您的示例。我尝试了您所说的,选项2.我将该调用放在按钮的单击事件中。我得到此错误“Microsoft JScript运行时错误:'offset() .top'为空或不是对象“ –