JS中完美兼容各大浏览器的scrolltop方法

var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;

window.pageYOffset (Safari) 被放置在 || 的中间位置。

因为当 数字0 与 undefine 进行 或运算时,系统默认返回最后一个值。即或运算中 0 == undefine ;

当页面滚动条刚好在最顶端,即scrollTop值为 0 时,IE 下 window.pageYOffset (Safari) 返回为 undefine ,此时将 window.pageYOffset (Safari) 放在或运算最后面时, scrollTop 返回 undefine , undefine 用在接下去的运算就会报错咯。

而其他浏览器 无论 scrollTop 赋值或运算顺序如何都不会返回 undefine. 可以安全使用..

所以说到头还是IE的问题

时间: 2024-11-02 23:32:44

JS中完美兼容各大浏览器的scrolltop方法的相关文章

【js】js访问剪切板(兼容各大浏览器)唯一解决方案ZeroClipboard.swf

需求描述: 通过JS实现将页面中的某个元素的数据复制到剪切板上. 需求分析: 要用JS实现最大的问题就是浏览器的兼容性问题了.而且最大的问题还是浏览器出于安全型的考虑,所以像chrome,Firefox等浏览器都不让访问. 解决方案: 最终的解决方案还是通过flash实现的,在网上搜索(关键字:js access clipboard)了一大堆的相关资料,但是这或许是唯一的解决方案了吧!真没想到,flash还是最终的解决方法.当有一天flash彻底被浏览器给抛弃了我想这又将是一大问题了.但是这个问

用bootstrap兼容ie各大浏览器的解决方法

以bootstrap为框架常常会出现不兼容ie各大浏览器的问题,用以下代码基本可以解决,一般在<head></head>加入以下代码后,网页可能还一些比较不美观,再写一点css hack就可以了,如果加入以下代码网页还是特别乱,请检查一下你的css和js的文件顺序,有加载顺序的... <!--[if lte IE 6]> <link rel="stylesheet" type="text/css" href="st

☆☆☆☆☆Placeholder兼容各大浏览器的例子☆☆☆☆☆

<!doctype html> <html> <head> <meta charset="utf-8"> <title>Placeholder兼容各大浏览器的例子</title> <script src="jquery-1.8.0.min.js"></script> </head> <body> <form> <div> &

JS打开新窗口防止被浏览器阻止的方法

这篇文章主要介绍了JS打开新窗口防止被浏览器阻止的方法,分析对比了常用方法与改进方法,是非常实用的技巧,需要的朋友可以参考下 本文实例讲述了JS打开新窗口防止被浏览器阻止的方法.分享给大家供大家参考.具体分析如下: 用传统的window.open()方式打开新窗口,会被浏览器阻止,那么,我们如何才能让JS打开新窗口不被浏览器阻止呢?其实办法还是有的,这里我们就来分析一下如何解决这个问题 我最近也遇到了这样的问题,所以就把弹出新窗口的方法分享给大家.欢迎大家补充哦... 第一种.使用原生javas

js中页面刷新和页面跳转的方法总结 [ 转自欢醉同学 ]

.js中cookie的基本用法简介 2009-12-15 js中页面刷新和页面跳转的方法总结 文章分类:Web前端 关键字: javascript js中页面刷新和页面跳转的方法总结 1.history.go(-1), 返回两个页面: history.go(-2); 2. history.back(). 3. window.history.forward()返回下一页 4. window.history.go(返回第几页,也可以使用访问过的URL) 例: <a href="javascri

兼容低版本浏览器的getElementByClassName方法

/*兼容低版本浏览器的getElementByClassName方法*/ function getElementsByClassName(root,className){ if(root.getElementsByClassName){ return root.getElementsByClassName(className); }else{ var elements=root.getElementsByTagName(); var result=[]; for(var i=0,element;

JS中对获取一个标签的class的方法封一个库

在JS中我们经常会会用到,获取一个标签的id var aId=document.getElementById("id") 现在虽然有getElementsByClassName这个方法,但是这个方法再ie6下兼容性存在问题,所以保险起见还是封一个获取class的库 首先先看库 /** * Created by asus on 2016/12/4 By dirk_jian. */ function getByclass(oParent,sClass){ var aEle=oParent.

JS中把字符串转成JSON对象的方法

在JS中,把 json 格式的字符串转成JSON对象,关键代码 json = eval('('+str+')'); <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml

JS 中对变量类型的五种判断方法

5种基本数据类型:undefined.null.boolean.unmber.string 复杂数据类型:object. object:array.function.date等 方法一:使用typeof检测 当需要变量是否是number,string,boolean ,function,undefined,json类型时,可以使用typeof进行判断:其他变量是判断不出类型的,包括null. typeof是区分不出array和json类型的,因为使用typeof这个变量时,array和json类