js CSS操作方法集合


Posted in Javascript onOctober 31, 2008

//获取元素的真实的,最终的CSS样式属性值的函数
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;
}
//确定元素相对于父亲的位置的两个函数
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容器的位置
function posX(elem){
return parseInt(getStyle(elem,"left"));
}
function posY(elem){
return parseInt(getStyle(elem,"top"));
}
//设置元素x和y位置(与当前位置无关)的函数
function setX(elem,pos){
elem.style.left = pos+"px";
}
function setY(elem,pos){
elem.style.top = pos+"px";
}
//调整元素相对于当前位置的距离的函数
function addX(elem,pos){
setX(posX(elem)+pos);
}
function addY(elem,pos){
setY(posY(elem)+pos);
}

//获取元素当前的高度和宽度
function getHeight(elem){
return parseInt(getStyle(elem,'height'));
}
function getWidth(elem){
return parseInt(getStyle(elem,'width'));
}
//即是元素隐藏,也能分别获取它潜在的完整高度和宽度的两个函数
function fullHeight(elem){
if(getStyle(elem,'display')!='none'){
return elem.offsetHeight||getHeight(elem);
}
var old = resetCSS(elem,{
display:'',
visibility:'hidden',
position:'absolute'
});
var h = elem.clientHeight||getHeight(elem);
restoreCSS(elem,old);
return h;
}

function fullWidth(elem){
if(getStyle(elem,'display')!='none'){
return elem.offsetWidth || getWidth(elem);
}
var old = resetCSS(elem,{
display:'',
visibility:'hidden',
position:'absolute'
});
var w = elem.clientWidth || getWidth(elem);
restoreCSS(elem,old);
return w;
}

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];
}
}
//使用CSS的display属性来切换元素可见性的一组函数
function hide(elem){
var curDisplay = getStyle(elem,'display');
if(curDisplay != 'none'){
elem.$oldDisplay= curDisplay;
}
elem.style.display = 'none';
}
function show(elem){
elem.style.display = elem.$oldDisplay ||'';

}
//设置元素的透明度
function setOpacity(elem,level){
if(elem.filters){
elem.style.filters = 'alpha(opacity='+level+')';
}else{
elem.style.opacity = level/100;
}
}

Javascript 相关文章推荐
javascript动态改变img的src属性图片不显示的解决方法
Oct 20 Javascript
原生js 秒表实现代码
Jul 24 Javascript
关于div自适应高度/左右高度自适应一致的js代码
Mar 22 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
Mar 18 Javascript
借助javascript代码判断网页是静态还是伪静态
May 05 Javascript
JavaScript实现在标题栏上显示当前日期的方法
Mar 19 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
Jun 05 Javascript
javascript使用输出语句实现网页特效代码
Aug 06 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
May 28 Javascript
Vue组件选项props实例详解
Aug 18 Javascript
详解js根据百度地图提供经纬度计算两点距离
May 13 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
Feb 06 Javascript
xml分页+ajax请求数据源+dom取结果实例代码
Oct 31 #Javascript
JS Array对象入门分析
Oct 30 #Javascript
ajaxControlToolkit AutoCompleteExtender的用法
Oct 30 #Javascript
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
Oct 29 #Javascript
关于B/S判断浏览器断开的问题讨论
Oct 29 #Javascript
JS写的数字拼图小游戏代码[学习参考]
Oct 29 #Javascript
JavaScript函数、方法、对象代码
Oct 29 #Javascript
You might like
php中获取主机名、协议及IP地址的方法
2014/11/18 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
jQuery 使用手册(四)
2009/09/23 Javascript
JQuery中each()的使用方法说明
2010/08/19 Javascript
js DOM 元素ID就是全局变量
2012/09/20 Javascript
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
Nodejs极简入门教程(一):模块机制
2014/10/25 NodeJs
Bootstrap入门书籍之(四)菜单、按钮及导航
2016/02/17 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
2016/09/13 Javascript
浅谈js中function的参数默认值
2017/02/20 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
JavaScript 替换所有匹配内容及正则替换方法
2020/02/12 Javascript
解决Vue的项目使用Element ui 走马灯无法实现的问题
2020/08/03 Javascript
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
python中去空格函数的用法
2014/08/21 Python
进一步了解Python中的XML 工具
2015/04/13 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
Python读取一个目录下所有目录和文件的方法
2016/07/15 Python
Python3 处理JSON的实例详解
2017/10/29 Python
Python列表删除的三种方法代码分享
2017/10/31 Python
python实现画一颗树和一片森林
2018/06/25 Python
Python3中_(下划线)和__(双下划线)的用途和区别
2019/04/26 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
python如何删除文件、目录
2020/06/23 Python
入党自荐书范文
2014/03/09 职场文书
市场调查策划方案
2014/06/10 职场文书
踏青活动策划方案
2014/08/19 职场文书
高中生逃课检讨书
2014/10/10 职场文书
师德师风自查材料
2014/10/14 职场文书
2015年学生管理工作总结
2015/05/26 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书