javascript position兼容性随笔
一、Javascript源码
if (!window.jasen.core.Position) {
window.jasen.core.Position = {};
}
function Size(width, height) {
this.width = parseFloat(width);
this.height = parseFloat(height);
}
Size.prototype.toString = function () {
return "width=" + this.width + ";height=" + this.height;
}
function Point(x, y) {
this.x = parseFloat(x);
this.y = parseFloat(y);
}
Point.prototype.toString = function () {
return "x=" + this.x + ";y=" + this.y;
}
// 获取窗口的左上角的偏移量(相对屏幕)
function getScreenOffset() {
if (window.screenLeft) {
return new Point(window.screenLeft, window.screenTop);
}
else if (window.screenX) { // Firefox
return new Point(window.screenX, window.screenY);
}
return new Point(0, 0);
}
// 获取屏幕的大小
function getScreenSize() {
return new Size(window.screen.width, window.screen.height);
}
// 获取窗口中的文档显示区的大小
function getVisibleSize() {
if (window.innerWidth) {
return new Size(window.innerWidth, window.innerHeight);
}
else if (document.documentElement && document.documentElement.clientWidth) {
return new Size(document.documentElement.clientWidth, document.documentElement.clientHeight);
}
else if (document.body && document.body.clientWidth) {
return new Size(document.body.clientWidth, document.body.clientHeight);
}
return new Size(0, 0);
}
// 获取窗口中的文档的偏移量(滚动条的值)
function getPageOffset() {
if (window.pageXOffset) {
return new Point(window.pageXOffset, window.pageYOffset);
}
else if (document.documentElement && document.documentElement.scrollLeft) {
return new Point(document.documentElement.scrollLeft, document.documentElement.scrollTop);
}
else if (document.body && document.body.scrollLeft) {
return new Point(document.body.scrollLeft, document.body.scrollTop);
}
return new Point(0, 0);
}
var position = window.Position = window.jasen.core.Position;
position.getScreenOffset = getScreenOffset;
position.getScreenOffsetX = function () { return getScreenOffset().x; };
position.getScreenOffsetY = function () { return getScreenOffset().y; };
position.getScreenSize = getScreenSize;
position.getScreenWidth = function () { return getScreenSize().width; };
position.getScreenHeight = function () { return getScreenSize().height; };
position.getVisibleSize = getVisibleSize;
position.getVisibleWidth = function () { return getVisibleSize().width; };
position.getVisibleHeight = function () { return getVisibleSize().height; };
position.getPageOffset = getPageOffset;
position.getPageOffsetX = function () { return getPageOffset().x; };
position.getPageOffsetY = function () { return getPageOffset().y; };
二、范例
<script type="text/javascript">
document.body.onclick = function () {
alert(window.Position.getVisibleSize());
alert(window.Position.getPageOffset());
}
</script>
javascript position兼容性随笔的更多相关文章
- javascript opacity兼容性随笔
一.CSS兼容代码 .transparent { filter:alpha(opacity=50); /* IE */ -moz-opacity:0.5; /* FireFox old version ...
- javascript event兼容性随笔
一.前言 function ConvertEvent(e, element) { var event = e || window.event; var resultEvent = { event: e ...
- javascript Xml兼容性随笔
一.前言 (function (window) { if (!window.jasen) { window.jasen = {}; } if (!window.jasen.core) { window ...
- 《高性能javascript》 领悟随笔之-------DOM编程篇(二)
<高性能javascript> 领悟随笔之-------DOM编程篇二 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整 ...
- 《高性能javascript》 领悟随笔之-------DOM编程篇
<高性能javascript> 领悟随笔之-------DOM编程篇一 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整 ...
- JAVASCRIPT 浏览器兼容性问题及解决方案列表
JAVASCRIPT 浏览器兼容性问题及解决方案列表(1)获取HTML元素只兼容IE:document.all.hello hello 兼容所有: document.getElementById(“h ...
- JavaScript 事件兼容性写法
1.以下是JavaScript事件兼容性写法,使用者可以随意使用,兼容所有浏览器.包括IE6(亲测) <!DOCTYPE html> <html> <head> & ...
- 【原创】最有效解决IE8 position兼容性问题
看了网上的的帖子真是水的一塌糊涂,完全没有解决我和广大网友们的关于ie8下position兼容性问题. 网上有的技术我就不说了 ,大家自行搜索,我想说的重点是 ie8不支持html5的新标签.这是重点 ...
- [TimLinux] JavaScript position为fixed时支持水平滚动条
1. 固定定位 position: fixed;设置好之后,元素在浏览器窗口中的位置就固定住了,这个时候,不论是水平移动滚动条,还是垂直移动滚动条,元素是打死都不会动的. 但是当用fixed定位的元素 ...
随机推荐
- ASP.NET中的Session怎么正确使用
Session对象用于存储从一个用户开始访问某个特定的aspx的页面起,到用户离开为止,特定的用户会话所需要的信息.用户在应用程序的页面切换时,Session对象的变量不会被清除. 对于一个Web应用 ...
- MVC 之 WebAPI 系列二
今天,我想在此记录下 WebApi 跨域调用 1. 什么叫跨域: 跨域问题简单理解就是JavaScript同源策略的限制,其根本原因是因为浏览器对于这种请求,所给予的权限是较低的,通常只允许调用本域中 ...
- android开发学习笔记001a
Android 应用与开发环境 1.使用SDK版本:Android 2.3 . 2.发展和历史 创始人:Andy Rubin,Android公司被Google收购.07年11月5日1.0发布. 3.平 ...
- canvas beginPath()
先举个简单的例子, var myCanvas = document.getElementById("myCanvas"); var context= myCanvas.getCon ...
- 【转】HTTP POST GET 本质区别详解
一 原理区别 一般在浏览器中输入网址访问资源都是通过GET方式:在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交 Http定义了与服务器交互的不同方法,最基本的 ...
- HBase安装及简单使用
通过之前的hadoop0.20.2的安装并调试成功,接下来我们继续安装hbase0.90.5.在安装hbase0.90.5之前,因为hbase0.90.5只支持jdk1.6,所以,我把之前的jdk1. ...
- SQL 重置自增列的值 批量处理
Declare @IdentityTable sysname, @IdentityColumn sysname, @TotalRows int, @i int, @Iden int, @Sql var ...
- 完全用CSS实现的表格
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 去重 ROW_NUMBER() OVER(PARTITION BY 分组字段 ORDER BY 排序字段) RN
关键字 ROW_NUMBER() OVER(PARTITION BY 分组字段 ORDER BY 排序字段) RN 按照分组字段进行排序并标编号 ROW_NUMBER() OVER(PARTITIO ...
- C语言小练习四
题目要求:输入N个数,输出该数列中第k个最大者. 程序源码: #include <stdio.h> #include <string.h> void printResult(i ...