日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

刷新后 页面 保持滚动条位置

發布時間:2025/3/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 刷新后 页面 保持滚动条位置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如何使頁面刷新后仍然保持滾動條位置,有幾種方法:

1. MaintainScrollPositionOnPostBack 最好

在Page_Load 中加入 Page.MaintainScrollPositionOnPostBack = True

或者在頁面的<%@ Page? %> 中加入MaintainScrollPositionOnPostBack = True? 一樣的效果

2.SmartNavigation

在Page_Load 中加入 Page.SmartNavigation= True

或者在頁面的<%@ Page? %> 中加入SmartNavigation= True?

這中方法已經過時了,有的時候會出現CSS的樣式無法顯示的情況

3.javasvript方法1

如果ascx(Custom Control)自定義空間太長,可以用jscript實現保持滾動條位置效果

<script?language="javascript">
<!--
//??獲取當前文件名
function?getFileName()
{
????
var?url?=?this.location.href;
????
var?pos?=?url.lastIndexOf("/");
????
if(pos?==?-1)
????????pos?
=?url.lastIndexOf("\\");
????
var?filename?=?url.substr(pos+1);
????
return?filename;
}
function?fnLoad()
{
????
with(window.document.body)
????{
????????addBehavior?(
"#default#userData");????//?使 得body元素可以支持userdate
????????load("scrollState"?+?getFileName());????//?獲 取以前保存在userdate中的狀態
????????if?(sFirstEnter=="0")
????????{???scrollLeft?
=?getAttribute("scrollLeft");????//?滾 動條左位置
????????????scrollTop?=?getAttribute("scrollTop");
????????}
????}
}
function?fnUnload()
{
????
with(window.document.body)
????{???setAttribute(
"scrollLeft",scrollLeft);
????????setAttribute(
"scrollTop",scrollTop);
????????save(
"scrollState"?+?getFileName());????
????????
//?防止受其他文件的userdate數據影響,所以將文件名加上了
????????//?userdate里的數據是不能跨 目錄訪問的
????}
}
window.onload?
=?fnLoad;
window.onunload?
=?fnUnload;
//?-->
</script>?

網上說只要具有scroll屬性的html控件,都可以用這個方法來實現頁面刷新后的滾動條的定位。當然,函數是要做一下改動。把 with(window.document.body)中的body改為其他控件的ID就可以了: with(window.document.all["控件ID"])
4.javascript 方法2

這是在網上看到的另一種用JS保持頁面滾動條位置

<SCRIPT?LANGUAGE="JavaScript">
<!--???
??
/*haiwa@2004-02-12*/???
??
function?Trim(strValue)???
??{???
??
return?strValue.replace(/^\s*|\s*$/g,"");???
??}???
??
function?SetCookie(sName,?sValue)???
??{???
??document.cookie?
=?sName?+?"="?+?escape(sValue);???
??}???
??
function?GetCookie(sName)???
??{???
??
var?aCookie?=?document.cookie.split(";");???
??
for?(var?i=0;?i?<?aCookie.length;?i++)???
??{???
??
var?aCrumb?=?aCookie[i].split("=");???
??
if?(sName?==?Trim(aCrumb[0]))???
??{???
??
return?unescape(aCrumb[1]);???
??}???
??}???
??
return?null;???
??}???
??
function?scrollback()???
??{???
??
if?(GetCookie("scroll")!=null){document.body.scrollTop=GetCookie("scroll")}???
??}???
??
//-->
</script>???

?然后修改BODY位置為

<BODY?id=body?onscroll=SetCookie("scroll",body.scrollTop);?onload="scrollback();">

總結

以上是生活随笔為你收集整理的刷新后 页面 保持滚动条位置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。