实验环境:vs2015 asp.net(C#)

主要原理:

1.在页面滚动时或点击按钮时将当前滚动条位置记录到cookie[pos],

2.页面刷新或重载时查询cookie[pos]中的值是否存在,若存在根据该值给滚动条定位

.aspx文件

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link rel="stylesheet" href="bootstrap-3.3.7-dist/css/MyStyleSheet.css" />
</head>
<body onscroll="aa()">
<form id="form1" runat="server">
<div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="aa()" />
<div style="height: 600px" runat="server">
</div>
<asp:Button ID="Button3" runat="server" Text="Button" OnClientClick="aa()" />
    </div>
   </form>
</body>
</html>

js代码

注意点:若页面指定了DTD,即指定了DOCTYPE时,使用document.documentElement.scrollTop获取滚动条滚动高度,若页面没有DTD,即没指定DOCTYPE时,使用document.body.scrollTop获取滚动条高度。如果在页面制定了DTD时使用document.body.scrollTop则取值一直为0。

 <script>    
function getCookie(c_name) {
//从cookie中获取滚动条距离顶端位置
if (document.cookie.length > 0) {
var aCookie = document.cookie.split(";");
for (var i = 0; i < aCookie.length; i++) {
var aCrumb = aCookie[i].split("=");
if (aCrumb[0] == c_name) {
return unescape(aCrumb[1]);
}
}
}
return ""
}
function setCookie(c_name, value) {
//给cookie赋值
document.cookie = c_name + "=" + escape(value) + ";";
}
function aa() {
//页面指定了DTD,即指定了DOCTYPE时,使用document.documentElement。
//页面没有DTD,即没指定DOCTYPE时,使用document.body。
setCookie("pos", document.documentElement.scrollTop)
}
function checkMe() {
      //给scrollTop赋值
if (getCookie("pos") != "") {
document.documentElement.scrollTop = getCookie("pos") + "px"
}
}
checkMe()
</script>
 

JavaScript实现页面刷新滚动条位置不变(利用cookie)的更多相关文章

  1. js实现div滚动条在页面刷新 滚动条位置固定

    思想:1.通过div的onscroll事件记录滚动条的scrollTop值,设置到document.cookie 2.页面加载时再读取document.cookie的值,设置给div的scrollTo ...

  2. JavaScript禁用页面刷新

    JavaScript禁用页面刷新代码如下: //禁用F5刷新 document.onkeydown = function () { if (event.keyCode == 116) { event. ...

  3. JQuery实现页面刷新滚动条自动滚动到特定位置

    var cotentOffset = $('#6f').offset(); $('.info_box').animate({ scrollLeft: cotentOffset.left }, ); 原 ...

  4. 用Javascript获取页面元素的位置

    制作网页的过程中,你有时候需要知道某个元素在网页上的确切位置. 下面的教程总结了Javascript在网页定位方面的相关知识. 一.网页的大小和浏览器窗口的大小 首先,要明确两个基本概念. 一张网页的 ...

  5. asp.net IE 页面刷新固定位置

    MaintainScrollPositionOnPostback="true" 可能我们会经常遇到这种情况,当页面内容比较多的时候,当用户执行操作执行一次页面回送后,页面又重新从顶 ...

  6. html-javascript前端页面刷新重载的方法汇总

    记得我在兴安得力实习要转正的时候,我领导象征性的给我出了一套测试题目,里面就有js闭包和页面刷新等题目.今天把很久之前的测试题目之一,js页面刷新的方法以及页面自动刷新跳转和返回上一页和下一页等方法总 ...

  7. sharepoint 2010 页面刷新时滚动条位置保持不变 Controlling scrollbar position on postback

    sharepoint 2010 页面刷新时滚动条位置保持不变 Controlling scrollbar position on postback在sharepoint 2010中,如果当前页面的篇幅 ...

  8. asp.net页面刷新或者回发后DIV的滚动条位置不变!(转)

    源文件:http://www.cnblogs.com/nyth/archive/2011/06/10/2077868.html 当把数据放在div里面,然后给div设置Scroll显示,在页面刷新后或 ...

  9. JS刷新页面后滚动条的位置不变

    有时候,在网页中点击了页面中的按钮或是刷新了页面后,页面滚动条又 会回到顶部,想看后面的记录就又要拖动滚动条,或者要按翻页键,非常不方便,想在提交页面或者在页面刷新的时候仍然保持滚动条的位置不变,最好 ...

随机推荐

  1. Vue父子组件生命过程

    加载渲染过程 父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount-& ...

  2. POJ-1860.CurrencyExchange(Spfa判断负环模版题)

    本题思路:每完成一次交换之后交换余额多于原钱数则存在正环,输出YES即可. 参考代码: #include <cstdio> #include <cstring> #includ ...

  3. 如何看iOS崩溃日志

    重点:Triggered by Thread这句话后边的线程号,快速定位问题出现在那个线程,是否是你的锅:Triggered by Thread所指的线程表示导致异常.崩溃的线程 下边内容转自简书 简 ...

  4. video自定义

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 对webdriver-driver句柄的理解

    先贴代码: from selenium import webdriver    //首先导入selenium(webdriver)相关模块 driver = webdriver.Firefox()  ...

  6. android一个app打开另一个app的指定页面

    一个app打开另一个app的指定页面方法 有以下几种 1.通过包名.类名 2.通过intent的 action 3.通过Url 方案1. ComponentName componentName = n ...

  7. 部署harbor仓库相关问题总结

    切换到harbor目录docker-compose down 停止所有服务 docker-compose up -d 启动所用服务 卸载:停止服务后 使用:docker rmi --force $(d ...

  8. pip 的简单使用

    pip3 install scrapy #安装包 pip3 uninstall scrapy #删除安装包 pip3 search 'packages_name'#搜索包 pip3 list  #列出 ...

  9. 服务监控-zabbix监控指标

    1.cpu unitzation 监控cpu的整体状态. 使用Zabbix查看CPU利用率,会有下面几个值: CPU idle time:空闲的cpu时间比[简称id] CPU user time:用 ...

  10. IP报文头详解

    IPv4报头: 报头长度:20-60字节bytes 白色部分为固定头部部分(20 bytes),绿色option选项部分为可选部分. 固定头部大小计算: 4bit + 4bit + 8bit + 16 ...