document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
做页面的时候可能会用到位置固定的层,读取 document.body.scrollTop 来设置层的位置,像这样:
window.onscroll = function (){
var oFix = document.getElementById("divfix");
oFix.style.top = document.body.scrollTop + "px";
}
可是怎么没有达到预期效果呢,输出 document.body.scrollTop 的值一看,一直都是 0。原来是 DTD 的问题,要是页面直接用 开头的话就没有问题了。但是要符合 web 标准,DTD 当然是不能少的。具有 DTD 时用 document.documentElement.scrollTop 代替 document.body.scrollTop 就可以了。
window.onscroll = function (){
var oFix = document.getElementById("divfix");
oFix.style.top = document.documentElement.scrollTop + "px";
}
编者注:
页面具有 DTD(或者说指定了 DOCTYPE)时,使用 document.documentElement。
页面不具有 DTD(或者说没有指定了 DOCTYPE)时,使用 document.body。
在 IE 和 Firefox 中均是如此。
为了兼容,可以使用如下代码: var scrollTop = window.pageYOffset
|| document.documentElement.scrollTop
|| document.body.scrollTop
|| 0;
相关推荐
-
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
做页面的时候可能会用到位置固定的层,读取 document.body.scrollTop 来设置层的位置,像这样: window.onscroll = function (){ var oFix = document.getElementById("divfix"); oFix.style.top = document.body.scrollTop + "px"; } 可是怎么没有达到预期效果呢,输出 document.body.scrollTop 的值一看,一直
-
JS模态窗口返回值兼容问题的完美解决方法
因系统要兼容原IE已使用的关闭方法,经调试测得,需对window.dialogArguments进行再较验,不然易出问题. function OKEnd(vals) { if (vals == null) vals = "TRUE"; if (typeof (window.opener) == "undefined") { if (typeof (window.dialogArguments) != "undefined") { if (wind
-
Android线程中设置控件的值提示报错的解决方法
本文实例讲述了Android线程中设置控件的值提示报错的解决方法.分享给大家供大家参考,具体如下: 在Android线程中设置控件的值一般会与Handler联合使用,如下: package com.yarin.android.Examples_04_15; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import andro
-
MySQL5.7中的sql_mode默认值带来的坑及解决方法
在正常项目开发过程中,如果MySQL版本从5.6升级到5.7版本.作为DBA在考虑数据库版本升级带来的影响时,一般会有几个注意点: sql_mode optimizer_switch 本文主要内容是MySQL升级到5.7版本之后,由于默认的 sql_mode 值带来的坑以及对应的解决方案. 案例一:ONLY_FULL_GROUP_BY 问题描述 MySQL版本从5.6升级至5.7之后,部分SQL执行报错,报错信息如下: ERROR 1055 (42000): Expression #3 of X
-
基于layui table返回的值的多级嵌套的解决方法
我在学习layui的过程中遇到了table返回值的问题,如果服务器端返回给你的数据是多级嵌套的话,那你在前台是解析不了的,在table.js源码中 它渲染数据是用了 data = res[options.response.dataName] || [] 这个意味着它源码不支持嵌套数据 举个例子把 比如服务器端返回的数据中data>dataList>list 把这个数据返回给前段解析出来的是 res[data.dataList.list]类似这种的结构,当然解析不了,所以我写了一个方法处理返回的
-
JQuery 设置checkbox值二次无效的解决方法
在此MVC ASP.NET 项目,我利用jquery ajax传输数据给后台controller控制层,返回数据给JQuery数据. 首先必须清除checkbox的选中,因为是ajax的异步操作,是不刷新页面的,所以需要手段充值控件值,使得其为空,不影响下次的拿到数据显示. 言归正传,$("#checkboxID").attr('checked', false);//设置checkbox为不选中状态, $("#checkboxID").attr('checked',
-
Ubuntu18.04安装opencv 3.2.0的解决方法
下载opencv.zip 要提前安装依赖项. 先更新一下下载源.用17.04 的源可以解决在18.04中找不到libjasper.dev的问题. ref https://stackoverflow.com/questions/43484357/opencv-in-ubuntu-17-04 libjasper-dev无法安装 errorE: unable to locate libjasper-dev 解决方法 sudo add-apt-repository "deb http://securit
-
chrome下jq width()方法取值为0的解决方法
http://photo.163.com/shixiaojian089/train/28002 这是网易的一个相册,看到后想试着做做看. 在我的制作方法中,需要获取到每张照片的宽度,所以很自然就使用了jq的width()方法.在ff跟ie下运行问题不大,但是到了chrome上,就出现问题了. 使用alert排查,发现chrome下width方法取到的值都是0.这样子的话,想来就是脚本运行到这的时候图片根本没加载好.问题应该出在$(function(){});上,因为这个方法只要求加载完dom就开
-
MSSQL中进行SQL除法运算结果为小数却显示0的解决方法
今天在用MSSQL进行SQL除法运算时,发现运算结果有小数,而整数部分为0时,结果直接显示为0,经过一翻测试发现了解决方法,拿来分享. 假设有如下的一段SQL除法运算: select field1/field2 from table 假设其运算结果应该为0.123,但实际在MSSQL查询编辑器中运算直接就显示为0了,那么要想显示其真实结果,有什么办法呢?方法就是将分子field1的数据类型强制转换为float型,方法如下: select cast(field1 as float)/field2
-
dedecms后台验证码总提示错误的解决方法
直接用下面的代码,覆盖dede中的login.php即可 复制代码 代码如下: <? require_once(dirname(__FILE__)."/../include/config_base.php"); require_once(dirname(__FILE__)."/../include/inc_userlogin.php"); if(empty($dopost)) $dopost=""; //------------------
随机推荐
- IOS之构造方法与自定义构造方法的区别与实现
- Javascript实现单张图片浏览
- 截获网站title标签之家内容的例子
- 使用PHP的日期与时间函数技巧
- C语言实现修改文本文件中特定行的实现代码
- node.js chat程序如何实现Ajax long-polling长链接刷新模式
- PHP编程中的Session阻塞问题与解决方法分析
- JS实现DIV容器赋值的方法
- 如何正确显示数据库里同时存在的GB码和BIG5码?
- ES6中Iterator与for..of..遍历用法分析
- Oracle导出excel数据
- C语言解字符串逆序和单向链表逆序问题的代码示例
- jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
- 使用javascipt---实现二分查找法
- 最流行的Node.js精简型和全栈型开发框架介绍
- 微信小程序 用户数据解密详细介绍
- Android编程之自定义锁屏实例分析
- C#基础:基于const与readonly的深入研究
- 简单概括PHP的字符串中单引号与双引号的区别
- php实现mysql事务处理的方法