浏览器获取正确的scrollTop值

window.pageYOffset 被所有浏览器支持除了 IE 6, IE 7, IE 8, 不关doctype的事, 注IE9 开始支持此属性。

window.scrollY 被Firefox, Google Chrome , Safari支持 不关doctype的事, 注IE9 不支持此属性。

在(quirk 模式)的时候 document.body.scrollTop 在 Internet Explorer, Firefox, Opera, Google Chrome Safari 返回正确的值。
在(quirk 模式)的时候 document.documentElement.scrollTop 永远是零。

在(非quirk模式)的时候 document.documentElement.scrollTop在 Internet Explorer, Firefox and Opera 下返回正确的值 但是在 Google Chrome ,Safari 中永远是零。

特整理表格如下:


只在quirk模式下, body.scrollTop是被所有都支持的,所以这个表大家不用也没有必要去记, 只要记住一条:以上在win7环境下测试,可以看出是非常凌乱的!

1 if(window.pageYOffset){//这一条滤去了大部分, 只留了IE678
2
3 }else if(document.documentElement.scrollTop ){//IE678 的非quirk模式
4
5 }else if(document.body.scrolltop){//IE678 的quirk模式
6
7 }

原则是看pageYOffset 然后看documentElement.scrollTop, 最后是document.body.scrollTop!

浏览器获取正确的scrollTop值,布布扣,bubuko.com

时间: 2024-10-06 23:06:06

浏览器获取正确的scrollTop值的相关文章

js获取不到scrollTop值的问题

1. document.body.scrollTop 如果这个不行的话,就用下面的,应该是览器下 scrollTop有差异 2. document.documentElement.scrollTop 我这边用的是2,浏览器为谷歌. 原文地址:https://www.cnblogs.com/hanglog/p/12641172.html

在datagrid中,IE浏览器报错:SCRIPT5007: 无法获取属性“rowspan”的值: 对象为 null 或未定义

项目总采用datagird时,产生界面如下图原本标题上有功能按钮,此时消失   错误:SCRIPT5007: 无法获取属性"rowspan"的值: 对象为 null 或未定义, 造成这种错误的原因大致为:(1) 可能是在datagrid里面下的frozenColumns:[[ {......}]]或者是columns:[[{...},{...}]]   {...}之间多一个逗号(,) 查找原因为:columns定义时中 某个位置多写了 逗号, 仔细检查一下. 实际效果为: 误区:并非是

$.ajax发送数据无法获取正确响应

php刚使用没几天,也不是我主要的涉及,以前用的处理都忘得差不多了,但是解决了跨域后,使用jquery的ajax发现诸多问题,使用网页和第三方post测试插件无法获取一致的响应?个人解决办法,虽然比较low, 但是简单用下是可以的,当然有比较好的做法,我洗耳恭听 在不发生跨域问题的情况下,使用$.ajax一般是能获取到响应的 $.ajax({    url:'index.php',    data:{"data":{"name":"fred", 

关于scrollTop值一直为0的问题

在做聊天webapp时发现一个问题,当发送新消息时无法让页面自动滚到最下面显示最新的消息. 最先想到的解决思路就是用scrollTop方法,但是将内容节点绑定上scrollTop方法时一直不能生效,后来打开命令台时发现scrollTop的值一直为0.经过一番排查后终于发现问题的所在 scrollTop获取的值是滚动条产生的那个节点,也就是说虽然在content div里承载的聊天内容,但是为聊天内容产生出滚动条的DOM是它的父级元素,在这个产生滚动条的节点上就可以取得相应的scrollTop值.

无废话Android之activity的生命周期、activity的启动模式、activity横竖屏切换的生命周期、开启新的activity获取他的返回值、利用广播实现ip拨号、短信接收广播、短信监听器(6)

1.activity的生命周期 这七个方法定义了Activity的完整生命周期.实现这些方法可以帮助我们监视其中的三个嵌套生命周期循环: (1)Activity的完整生命周期 自第一次调用onCreate()开始,直到调用onDestory()为止.Activity在onCreate()中设置所有“全局”状态以完成初始化. 而在onDestory()中释放所有系统资源.例如,如果Activity有一个线程在后台运行从网络下载数据,它会在onCreate()创建线程, 而在onDestory()销

数据库操作--获取存储过程的返回值

用SQL Server数据库写了个存储过程,代码如下 <span style="font-family:KaiTi_GB2312;font-size:18px;">create procedure proc_select @id int as begin if exists(select * from news where [email protected]) return 1 else return 2 end </span> 在C#中通过执行存储过程来获取返

鼠标消息的位置获取正确方式

今天碰到一个问题,就是在多屏的时候,WM_NCHITTEST结果不正确,经检查发现在多屏的情况下,鼠标的位置是有可能出现负值的,但是如果还是用LoWord(Msg.LParam)和HiWORD(Msg.LParam)取鼠标的位置,就会取出不正确的值,因为这两个函数只会返回正值. 查询MSDN的WM_NCHITTEST有下面一段话. Remarks Use the following code to obtain the horizontal and vertical position: xPos

jQuery 获取多选框值,以及多选框中文的函数实践 by FungLeo

jQuery 获取多选框值,以及多选框中文的函数实践 by FungLeo 前言 本方法是我刚在项目中用的方法.可能有更加好的方法.但我不清楚. 搜索了几个方法,好像都有错误,不知道是别人的错误,还是我的错误.因此,我自己构造了以下方法,便于我在实践中使用. 分享出来,有谬误请大家指出. DOM结构 我的多选框的dom结构,都是下面这种的.都是基础知识,不做过多阐述. <label class="input_checkbox"> <input type="c

使用JavaScript获取样式的属性值

1 . 在js中可以使用style属性来获取样式的属性值(只能获取内联样式的属性值) 语法格式为: HTML元素.style.样式属性; 2 .   在IE浏览器中,使用currentStyle来获取属性值 语法格式为: HTML元素.currentStyle.样式属性: 3 . DOM提供了一个getComputedStyle()方法来获取属性值, Firefox,Opera,Safari,Chrome等浏览器支持(IE浏览器不支持) 语法格式: document.defaultView.ge