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 相关文章推荐
对象的类型:本地对象(1)
Dec 29 Javascript
jQuery :nth-child前有无空格的区别分析
Jul 11 Javascript
纯js分页代码(简洁实用)
Nov 05 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
Nov 17 Javascript
javascript中tostring()和valueof()的用法及两者的区别
Nov 16 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
May 27 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
Aug 01 Javascript
js实现多张图片延迟加载效果
Jul 17 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
Mar 05 Javascript
vue中axios的二次封装实例讲解
Oct 14 Javascript
Ajax请求超时与网络异常处理图文详解
May 23 Javascript
微信小程序实现轮播图指示器
Jun 25 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,不用COM,生成excel文件
2006/10/09 PHP
PHP中str_replace函数使用小结
2008/10/11 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
原生js实现公告滚动效果
2021/01/10 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
JavaScript实现鼠标经过表格某行时此行变色
2020/11/20 Javascript
[00:32]2018DOTA2亚洲邀请赛Secret出场
2018/04/03 DOTA
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
简单了解Python3里的一些新特性
2019/07/13 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
python利用7z批量解压rar的实现
2019/08/07 Python
Python使用Turtle库绘制一棵西兰花
2019/11/23 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
pytorch快速搭建神经网络_Sequential操作
2020/06/17 Python
Selenium python时间控件输入问题解决方案
2020/07/22 Python
Python3.9新特性详解
2020/10/10 Python
HTML5 Canvas实现360度全景图的示例代码
2018/01/29 HTML / CSS
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
类的返射机制中的包及核心类
2016/09/12 面试题
J2EE包括哪些技术
2016/11/25 面试题
英语演讲稿范文
2014/01/03 职场文书
项目开发计划书
2014/01/09 职场文书
工作失职检讨书范文
2014/01/16 职场文书
幼儿园教师教育感言
2014/02/28 职场文书
大学生全国两会报告感想
2014/03/17 职场文书
学习张林森心得体会
2014/09/10 职场文书
2014年度党员自我评议
2014/09/13 职场文书
法学专业求职信范文
2015/03/19 职场文书