我正在用asp.net c#代码编写。
我想控制帖子背面的页面位置。 MaintainScrollPositionOnPostback都不等于true或false,是我想要的。真实太低而虚假太高。另一个问题是位置应该根据按压控制而不同。第三个问题是MaintainScrollPositionOnPostback = true在I.E中起作用。但不是在Firefox中。
想要我想要与href相关的标签类似,例如<a href="#body2">
除了代码。
感谢您的任何建议。
答案 0 :(得分:3)
假设您可以使用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>
这是一个客户端方法的示例,您可以传递任何可见页面控件的“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);
}
答案 1 :(得分:0)
如果你知道你想要窗口的特定像素值,那么你可以尝试在Javascript中使用window.scrollTo()函数。
window.scrollTo(0,0);
答案 2 :(得分:0)
按钮点击按住以保持页面滚动位置:
$("#Next").click(function() { $('html,body').animate(
{ scrollTop: $('.required').offset().top
}, 0//increase for smooth, visible scroll ); });