您现在的位置:
365建站网 >
365文章 > VrWorking main object property
VrWorking main object property
文章来源:365jz.com 点击数:
156 更新时间:2009-09-28 09:20
参与评论
以下是 VrWorking 基类对象的代码:
VrWorking.js
/// Charset = UTF-8
if (typeof(VrWorking) == "undefined" || !VrWorking)
{
/// <summary>
/// define namespace: VrWorking
/// </summary>
/// <returns>object instance</returns>
var VrWorking = { name : "VrWorking"
, rights : "VrWorking Studio"//版权
, version : "v0.2.1beta"//版本
, update : "2009-4-12"//最后更新日期
, author : "疯中男子"//作者
, encode : "UTF-8"//字符编码(UTF-8)
, support : "MSIE 6+"
, $w : window
, $d : document
, $c : function (args){ return this.$d.createElement(args.tag); }
, $g : function (args){ return this.$d.getElementById(args.id); }
, $n : function (args){ return this.$d.getElementsByName(args.name); }
, $s : function (){ return this.$w.location.protocol+"//"+this.$w.location.host+"/"; } // 当前域名,包含端口号
, $ : function (id){ return this.$d.getElementById(id); }
, $$ : function (name){ return this.$d.getElementsByName(name); }
, $a : function (name){
var o = this.$d.getElementsByName(name);
if (o.length == 0) return null;
var a = [];
for (var i=0; i<o.length; i++) { a[i] = o[i]; };
return a;
}
, $children : function (parent){
/// 取 DOM 元素节点,过滤文本节点
if (parent == null) return;
if (parent.childNodes.length == 0) return;
var a = [];
for (var i=0, j=0; i<parent.childNodes.length; i++)
{
if (parent.childNodes[i].nodeType==1)
{
a[j] = parent.childNodes[i];
j++;
};
};
return a;
}
, $styles : function (em, name){
// 获取指定元素的样式属性
// 该方法忽略计量单位的百分比
if (em.style[name])
{
// 如果存在于 style[] 中,那么它已经被设置了(并且是当前的)
return em.style[name];
}
else if (em.currentStyle)
{
// IE 的方法
return em.currentStyle[name];
}
else if (this.$d.defaultView && this.$d.defaultView.getComputedStyle)
{
// 使用 W3C 的方法
// 它使用的是 'text-align' 样式规则而非 'textAlign'
name = name.replace(/([A-Z])/g, "-$1");
name = name.toLowerCase();
// 获取样式对象并获取属性(存在的话)值
var s = this.$d.defaultView.getComputedStyle(em, "");
return s && s.getPropertyValue(name);
}
else
{
return null; // 其他浏览器
};
}
, $absWidth : function (em){
// 获取元素完整的可能的宽度
// 如果元素是显示的
if (this.$styles(em, "display") != "none") return em.offsetWidth || getWidth(em);
// 未显示的元素,需要重置其 CSS 属性以获取更精确的读数
var old = this.$resetCss(em, {
display : ""
, visibility : "hidden"
, position : "absolute"
});
// 使用 clientHeight 找出高度,如果还没有值,则使用 this.$styles 函数
var w = em.offsetWidth || getWidth(em);
// 恢复元素原有属性
this.$restoreCss(em, old);
// 返回宽度
return w;
}
, $absHeight : function (em){
// 获取元素完整的可能的高度
// 如果元素是显示的
if (this.$styles(em, "display") != "none") return em.offsetHeight || getHeight(em);
// 未显示的元素,需要重置其 CSS 属性以获取更精确的读数
var old = this.$resetCss(em, {
display : ""
, visibility : "hidden"
, position : "absolute"
});
// 使用 clientHeight 找出高度,如果还没有值,则使用 this.$styles 函数
var h = em.clientHeight || getHeight(em);
// 恢复元素原有属性
this.$restoreCss(em, old);
// 返回高度
return h;
}
, $resetCss : function (em, prop){
// 设置 CSS 一组属性的函数,可以恢复到原有设置
var old = {};
// 遍历属性
for (var i in prop)
{
// 记录旧的属性值
old[i] = em.style[i];
// 并设置新的属性值
em.style[i] = prop[i];
};
// 返回旧的属性值,以备恢复用
return old;
}
// 恢复 CSS 原有属性值
, $restoreCss : function (em, prop) { for (var i in prop) { em.style[i] = prop[i]; }; }
, $absLeft : function pageX(em){ return em.offsetParent ? em.offsetLeft + this.$absLeft(em.offsetParent) : em.offsetLeft; } // 获取元素的水平坐标值(基于浏览器内容的左上角)
, $absTop : function pageY(em){ return em.offsetParent ? em.offsetTop + this.$absTop(em.offsetParent) : em.offsetTop; } // 获取元素的垂直坐标值(基于浏览器内容的左上角)
, $timer : function (now){
if (now)
{
// 返回今日零时到现在的 UTC 毫秒数
var now = new Date();
return this.$timer() - new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), 0, 0, 0, 0).valueOf();
}
else
{
// 返回当前 UTC 时间与 1970 年 1 月 1 日午夜之间所间隔的毫秒数
return new Date().valueOf();
}
}
};
};
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛
------分隔线----------------------------