假設你能夠使用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'爲空或不是對象「 –