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=""; //------------------
随机推荐
- 如何用Cookie进行登录验证?
- php checkbox 取值详细说明
- avira premium avira中文绿色版下载
- 浅谈Java设计模式之开放封闭原则
- Swift编程之枚举类型详解
- Python实现的RSS阅读器实例
- PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
- Android仿探探卡片式滑动效果实现
- 用vbs实现的瞬间关闭多个系统进程的脚本
- javascript校验价格合法性实例(必须输入2位小数)
- 设置密码保护的SqlServer数据库备份文件与恢复文件的方法
- jQuery 方法大全方便学习参考
- javascript中Date()函数在各浏览器中的显示效果
- Nodejs express框架一个工程中同时使用ejs模版和jade模版
- java实现遗传算法实例分享(打印城市信息)
- Mingw64编译wxWidgets 3.0.2常见错误分析
- Java基于Tcp/ip连接的多人交互聊天室
- Vue实现用户自定义字段显示数据的方法
- Python安装pycurl失败的解决方法
- C#生成Word文件(图片、文字)