Предполагая, что вы можете использовать JQuery, попробуйте следующее:
http://beautifulsite.net/blog/2010/01/smoothly-scroll-to-an-element-without-a-jquery-plugin/
Просто введите скрипт и передайте идентификатор элемента управления, который запустил ваше событие обратной передачи.
Если по какой-то причине вы не можете использовать jquery, вот менее элегантный подход:
http://clifgriffin.com/2008/10/14/using-javascript-to-scroll-to-a-specific-elementobject/
Изменить (примеры):
Вот пример прямого html с использованием метода jquery, предполагая, что у вас есть файл скрипта с именем jquery.js в той же папке, что и html-страница.
<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>
Вот пример метода на стороне клиента, которому вы можете передать свойство «ClientID» любого видимого элемента управления страницей, и он зарегистрирует 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);
}
person
mtazva
schedule
22.06.2011