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 学习之旅 (2)
Feb 05 Javascript
获取HTML DOM节点元素的方法的总结
Aug 21 Javascript
js创建表单元素并使用submit进行提交
Aug 14 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
Jun 19 Javascript
简单谈谈JS数组中的indexOf方法
Oct 13 Javascript
js实现滑动到页面底部自动加载更多功能
Feb 15 Javascript
基于js中的存储键值对以及注意事项介绍
Mar 30 Javascript
Vue组件之极简的地址选择器的实现
May 31 Javascript
Vue项目中使用better-scroll实现一个轮播图自动播放功能
Dec 03 Javascript
layui实现下拉复选功能的例子(包括数据的回显与上传)
Sep 24 Javascript
javascript 原型与原型链的理解及应用实例分析
Feb 10 Javascript
浅谈Vue 自动化部署打包上线
Jun 14 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修改session_id示例代码
2014/01/08 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
起点页面传值js,有空研究学习下
2010/01/25 Javascript
JavaScript面向对象(极简主义法minimalist approach)
2012/07/17 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
Eval and new funciton not the same thing
2012/12/27 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
2013/06/26 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
2017/01/12 Javascript
JS+canvas画一个圆锥实例代码
2017/12/13 Javascript
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
2020/09/18 Javascript
python类参数self使用示例
2014/02/17 Python
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
2015/03/05 Python
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
Python中atexit模块的基本使用示例
2015/07/08 Python
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
通过5个知识点轻松搞定Python的作用域
2016/09/09 Python
Python调用ctypes使用C函数printf的方法
2017/08/23 Python
Python查找第n个子串的技巧分享
2018/06/27 Python
对Python通过pypyodbc访问Access数据库的方法详解
2018/10/27 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
简单了解python的内存管理机制
2019/07/08 Python
利用python实现短信和电话提醒功能的例子
2019/08/08 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
Python中openpyxl实现vlookup函数的实例
2020/10/28 Python
Sephora丝芙兰泰国官方网站:国际知名化妆品购物
2017/11/15 全球购物
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
耐克波兰官方网站:Nike波兰
2019/09/03 全球购物
名人传读书笔记
2015/06/26 职场文书
商务英语邮件开头问候语
2015/11/10 职场文书
Python OpenCV快速入门教程
2021/04/17 Python
python编程项目中线上问题排查与解决
2021/11/01 Python