zoukankan
html css js c++ java
保存div与页面滚动条的位置
1
/**/
///
<summary>
2
///
保存div与页面滚动条的位置
3
///
</summary>
9
///
<param name="divId">
DIV的ID数组
</param>
10
public
static
void
RetainScrollPosition(
string
[] divId)
11
{
12
13
System.Web.UI.Page page
=
(Page)HttpContext.Current.Handler;
14
15
string
saveScrollPosition
=
""
;
16
string
setScrollPosition
=
""
;
17
18
string
saveScrollPositionDiv
=
""
;
19
string
setScrollPositionDiv
=
""
;
20
21
保存页面滚动条的状态
#region
保存页面滚动条的状态
22
page.RegisterHiddenField(
"
__SCROLLPOS_TOP
"
,
"
0
"
);
23
page.RegisterHiddenField(
"
__SCROLLPOS_LEFT
"
,
"
0
"
);
24
25
saveScrollPosition
=
"
document.forms[0].__SCROLLPOS_TOP.value = {0}.scrollTop;document.forms[0].__SCROLLPOS_LEFT.value = {0}.scrollLeft;
"
;
//
}{0}.onscroll=saveScrollPosition;</script>";
26
setScrollPosition
=
"
{0}.scrollTop ='{1}';{0}.scrollLeft ='{2}';
"
;
//
}{0}.onload=setScrollPosition;</script>";
27
28
saveScrollPosition
=
string
.Format(saveScrollPosition,
"
window.document.body
"
);
29
setScrollPosition
=
string
.Format(setScrollPosition,
"
window.document.body
"
, page.Request.Form[
"
__SCROLLPOS_TOP
"
],page.Request.Form[
"
__SCROLLPOS_LEFT
"
]);
30
#endregion
31
32
保存divId的位置
#region
保存divId的位置
33
for
(
int
i
=
0
; i
<
divId.Length; i
++
)
34
{
35
page.RegisterHiddenField(divId[i].ToString()
+
"
_TOP
"
,
"
0
"
);
36
page.RegisterHiddenField(divId[i].ToString()
+
"
_LEFT
"
,
"
0
"
);
37
38
saveScrollPositionDiv
=
"
<script language='javascript'>function saveScrollPosition
"
+
divId[i].ToString()
+
"
() {{document.all('
"
+
divId[i].ToString()
+
"
_TOP').value = {0}.scrollTop;document.all('
"
+
divId[i].ToString()
+
"
_LEFT').value = {0}.scrollLeft;}}{0}.onscroll=saveScrollPosition
"
+
divId[i].ToString()
+
"
;</script>
"
;
39
setScrollPositionDiv
+=
"
{0}.scrollTop = {1};{0}.scrollLeft = {2};
"
;
40
41
saveScrollPositionDiv
=
string
.Format(saveScrollPositionDiv,
"
window.document.all('
"
+
divId[i].ToString()
+
"
')
"
);
42
page.RegisterStartupScript(
"
saveScroll
"
+
divId[i].ToString(), saveScrollPositionDiv);
43
44
setScrollPositionDiv
=
string
.Format(setScrollPositionDiv,
"
window.document.all('
"
+
divId[i].ToString()
+
"
')
"
, page.Request.Form[divId[i].ToString()
+
"
_TOP
"
],page.Request.Form[divId[i].ToString()
+
"
_LEFT
"
]);
45
}
46
#endregion
47
48
注册客户端脚本
#region
注册客户端脚本
49
saveScrollPosition
=
"
<script language='javascript'>function saveScrollPosition() {{
"
+
saveScrollPosition
+
"
}}{0}.onscroll=saveScrollPosition;</script>
"
;
50
page.RegisterStartupScript(
"
saveScroll
"
,
string
.Format(saveScrollPosition,
"
window.document.body
"
));
51
52
if
(page.IsPostBack)
53
{
54
setScrollPosition
=
"
<script language='javascript'>function setScrollPosition() {{
"
+
setScrollPosition
+
setScrollPositionDiv
+
"
}}{0}.onload=setScrollPosition;</script>
"
;
55
page.RegisterStartupScript(
"
setScroll
"
,
string
.Format(setScrollPosition,
"
window.document.body
"
));
56
//
page.RegisterStartupScript("setScrollDocument", string.Format(setScrollPosition,"window.document.body", page.Request.Form["__SCROLLPOS_TOP"],page.Request.Form["__SCROLLPOS_LEFT"]));
57
}
58
#endregion
59
60
}
查看全文
相关阅读:
DripRoad(点滴之路)
如何写优雅的代码
.Net 一直在改变
Protobufnet的完美解决方案
关于msgpack序列化后的消息包是否再压缩
失眠
创建一个比微软性能更好空间更少的GUID
msgpack与protobuf的简单性能测试对比
分布式游戏服务器的登陆流程
对象池的实现与性能测试
原文地址:https://www.cnblogs.com/ghd258/p/270441.html
最新文章
js单双引号之间的区别
怎样成为招女孩喜欢的 IT 男?
PHP_SELF、 SCRIPT_NAME、 REQUEST_URI区别
一名合格的PHP工程师的知识结构是怎样的?
程序员,你迷茫么?你忧伤么?
20142015 ACMICPC, NEERC, Southern Subregional Contest
牛客练习赛91 C.魔法学院(hard version) (dsu区间染色)
牛客练习赛91 B.魔法学院(easy version) (segment tree beats!)
北化ACM集训队每周程序设计 7 问题 E: 病毒树
Codeforces Round #754 (Div. 2) D. Treelabeling (二分图,二进制)
热门文章
20212022 ACMICPC Brazil Subregional Programming Contest
Codeforces Round #755 (Div. 2, based on Technocup 2022 Elimination Round 2) D. Guess the Permutation (交互,二分)
2021 CCPC桂林站 D Assumption is All You Need (贪心)
Mail.Ru Cup 2018 Round 2 C. Lucky Days (数论,裴蜀定理)
### Error building SqlSession.
sql注入问题
Git命令之创建版本
WebApi学习系列
Git 之Windows环境下学习系列
.Net 之Tuple 类
Copyright © 2011-2022 走看看