- //获取元素的样式值。
- function getStyle(elem,name){
- if(elem.style[name]){
- return elem.style[name];
- }else if(elem.currentStyle){
- return elem.currentStyle[name];
- }else if(document.defaultView&&document.defaultView.getComputedStyle){
- name=name.replace(/([A-Z])/g,"-$1");
- name=name.toLowerCase();
- var s=document.defaultView.getComputedStyle(elem,"");
- return s&&s.getPropertyValue(name);
- }else{
- return null;
- }
- }
- //获取元素相对于这个页面的x和y坐标。
- function pageX(elem){
- return elem.offsetParent?(elem.offsetLeft+pageX(elem.offsetParent)):elem.offsetLeft;
- }
- function pageY(elem){
- return elem.offsetParent?(elem.offsetTop+pageY(elem.offsetParent)):elem.offsetTop;
- }
- //获取元素相对于父元素的x和y坐标。
- function parentX(elem){
- return elem.parentNode==elem.offsetParent?elem.offsetLeft:pageX(elem)-pageX(elem.parentNode);
- }
- function parentY(elem){
- return elem.parentNode==elem.offsetParent?elem.offsetTop:pageY(elem)-pageY(elem.parentNode);
- }
- //获取使用CSS定位的元素的x和y坐标。
- function posX(elem){
- return parseInt(getStyle(elem,"left"));
- }
- function posY(elem){
- return parseInt(getStyle(elem,"top"));
- }
- //设置元素位置。
- function setX(elem,pos){
- elem.style.left=pos+"px";
- }
- function setY(elem,pos){
- elem.style.top=pos+"px";
- }
- //增加元素X和y坐标。
- function addX(elem,pos){
- set(elem,(posX(elem)+pos));
- }
- function addY(elem,pos){
- set(elem,(posY(elem)+pos));
- }
- //获取元素使用css控制大小的高度和宽度
- function getHeight(elem){
- return parseInt(getStyle(elem,"height"));
- }
- function getWidth(elem){
- return parseInt(getStyle(elem,"width"));
- }
- //获取元素可能,完整的高度和宽度
- function getFullHeight(elem){
- if(getStyle(elem,"display")!="none"){
- return getHeight(elem)||elem.offsetHeight;
- }else{
- var old=resetCss(elem,{display:"block",visibility:"hidden",position:"absolute"});
- var h=elem.clientHeight||getHeight(elem);
- restoreCss(elem,old);
- return h;
- }
- }
- function getFullWidth(elem){
- if(getStyle(elem,"display")!="none"){
- return getWidth(elem)||elem.offsetWidth;
- }else{
- var old=resetCss(elem,{display:"block",visibility:"hidden",position:"absolute"});
- var w=elem.clientWidth||getWidth(elem);
- restoreCss(elem,old);
- return w;
- }
- }
- //设置css,并保存旧的css
- function resetCss(elem,prop){
- var old={};
- for(var i in prop){
- old[i]=elem.style[i];
- elem.style[i]=prop[i];
- }
- return old;
- }
- function restoreCss(elem,prop){
- for(var i in prop){
- elem.style[i]=prop[i];
- }
- }
- //显示和隐藏
- function show(elem){
- elem.style.display=elem.$oldDisplay||" ";
- }
- function hide(elem){
- var curDisplay=getStyle(elem,"display");
- if(curDisplay!="none"){
- elem.$oldDisplay=curDisplay;
- elem.style.display="none";
- }
- }
- //设置透明度
- function setOpacity(elem,num){
- if(elem.filters){
- elem.style.filter="alpha(opacity="+num+")";
- }else{
- elem.style.opacity=num/100;
- }
- }
- //滑动
- function slideDown(elem){
- var h=getFullHeight(elem);
- elem.style.height="0px";
- show(elem);
- for(var i=0;i<=100;i+=5){
- new function(){
- var pos=i;
- setTimeout(function(){elem.style.height=(pos/100*h)+"px";},(pos*10));
- }
- }
- }
- //渐变
- function fadeIn(elem){
- show(elem);
- setOpacity(elem,0);
- for(var i=0;i<=100;i+=5){
- new function(){
- var pos=i;
- setTimeout(function(){setOpacity(elem,pos);},(pos+1)*10);
- }
- }
- }
- //获取鼠标光标相对于整个页面的位置。
- function getX(e){
- e=e||window.event;
- return e.pageX||e.clientX+document.body.scrollLeft;
- }
- function getY(e){
- e=e||window.event;
- return e.pageY||e.clientY+document.body.scrollTop;
- }
- //获取鼠标光标相对于当前元素的位置。
- function getElementX(e){
- return (e&&e.layerX)||window.event.offsetX;
- }
- function getElementY(e){
- return (e&&e.layerY)||window.event.offsetY;
- }
- //获取页面的高度和宽度
- function getPageHeight(){
- var de=document.documentElement;
- return document.body.scrollHeight||(de&&de.scrollHeight);
- }
- function getPageWidth(){
- var de=document.documentElement;
- return document.body.scrollWidth||(de&&de.scrollWidth);
- }
- //获取滚动条的位置。
- function scrollX(){
- var de=document.documentElement;
- return self.pageXOffset||(de&&de.scrollLeft)||document.body.scrollLeft;
- }
- function scrollY(){
- var de=document.documentElement;
- return self.pageYOffset||(de&&de.scrollTop)||document.body.scrollTop;
- }
- //获取视口的高度和宽度。
- function windowHeight() {
- var de = document.documentElement;
- return self.innerHeight||(de && de.offsetHeight)||document.body.offsetHeight;
- }
- function windowWidth() {
- var de = document.documentElement;
- return self.innerWidth||( de && de.offsetWidth )||document.body.offsetWidth;
- }
来源: http://www.phpxs.com/code/1003768/