页面加载时就确定函数实现

简介:

我们知道使用js获取浏览器的信息时经常涉及浏览器的兼容性.例如获取浏览器的滚动条

Js代码   收藏代码
  1. // Cross browser gets the position of scroll  
  2. com.whuang.hsj.getScroll=function(){  
  3.     return {  
  4.         top:document.documentElement.scrollTop || document.body.scrollTop,  
  5.         left:document.documentElement.scrollLeft || document.body.scrollLeft,  
  6.         height:document.documentElement.scrollHeight ||document.body.scrollHeight  
  7.     }  
  8. }  

 上面的方法每次执行时都得判断,所以我进行了如下优化:

Js代码   收藏代码
  1. // Cross browser gets the position of scroll  
  2. com.whuang.hsj.getScroll=(function(){  
  3.     if(document.documentElement.scrollTop!=='undefined'&&document.documentElement.scrollTop!==0)  
  4.     {  
  5.         return function(){  
  6.             return {  
  7.                 top:document.documentElement.scrollTop,  
  8.                 left:document.documentElement.scrollLeft,  
  9.                 height:document.documentElement.scrollHeight  
  10.             };  
  11.         };  
  12.     }else return function(){  
  13.         return {  
  14.             top:document.body.scrollTop,  
  15.             left:document.body.scrollLeft,  
  16.             height:document.body.scrollHeight  
  17.         };  
  18.     };  
  19.       
  20. })();  

 核心思想:在初始化时就确定函数的实现方式.

但是在使用过程中出现了问题,因为它的判断条件是:

if(document.documentElement.scrollTop!=='undefined'&&document.documentElement.scrollTop!==0)

但是在页面初始化时这个判断的依据是有问题的,不是实时的.在火狐中就有问题.

 

相关文章
|
11月前
节流函数和防抖函数的区别和应用
节流函数和防抖函数的区别和应用
35 0
|
12月前
|
前端开发
封装防抖函数和节流函数
封装防抖函数和节流函数
69 0
|
11天前
|
JavaScript 前端开发
js防抖函数返回值问题解决方案
本文介绍了如何在JavaScript中创建一个带有返回值的防抖函数,通过结合Promise来实现。这种防抖函数可以在事件触发一定时间后再执行函数,并能处理异步操作的返回值。文章提供了防抖函数的实现代码和如何在实际项目中使用该防抖函数的示例。
16 1
|
5月前
|
JavaScript 前端开发
js的事件函数和事件监听函数
js的事件函数和事件监听函数
56 0
|
11月前
|
JSON 小程序 JavaScript
小程序调用天气接口并且渲染在页面
小程序调用天气接口并且渲染在页面
63 0
|
11月前
|
JavaScript 前端开发
js函数调用的方式有几种
js函数调用的方式有几种
50 0
|
JavaScript
原生js实现一个节流函数和防抖函数?
原生js实现一个节流函数和防抖函数?
65 0
|
人工智能 自然语言处理 JavaScript
$nextTick与原生js先渲染dom再执行函数的方式
$nextTick与原生js先渲染dom再执行函数的方式
136 0
函数方式渲染页面
函数方式渲染页面
44 0
|
JavaScript
如何通过原生js实现一个节流函数和防抖函数?
如何通过原生js实现一个节流函数和防抖函数?