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语言本身谈项目实战
Dec 27 Javascript
jQuery 性能优化指南(2)
May 21 Javascript
网页前端优化之滚动延时加载图片示例
Jul 13 Javascript
Javascript中的五种数据类型详解
Dec 26 Javascript
JavaScript中string转换成number介绍
Dec 31 Javascript
提交按钮的name='submit'引起的js失效问题及原因
Feb 25 Javascript
详解JavaScript操作HTML DOM的基本方式
Oct 21 Javascript
js实现文字闪烁特效的方法
Dec 17 Javascript
JQuery 传送中文乱码问题的简单解决办法
May 24 Javascript
完美实现八种js焦点轮播图(上篇)
Jul 18 Javascript
vue中各选项及钩子函数执行顺序详解
Aug 25 Javascript
ES10 特性的完整指南小结
Mar 04 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中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
2014/05/04 PHP
PHP验证类的封装与使用方法详解
2019/01/10 PHP
jquery 插件学习(六)
2012/08/06 Javascript
用js实现trim()的解决办法
2013/04/16 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
AngularJS表格添加序号的方法
2017/03/03 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
详解vue beforeEach 死循环问题解决方法
2020/02/25 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
教大家使用Python SqlAlchemy
2016/02/12 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
Django学习教程之静态文件的调用详解
2018/05/08 Python
python3通过selenium爬虫获取到dj商品的实例代码
2019/04/25 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
Python实现平行坐标图的绘制(plotly)方式
2019/11/22 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
FC-Moto西班牙:摩托车手最大的购物场所之一
2019/04/11 全球购物
TCP/IP模型的分界线
2012/12/01 面试题
演讲稿的写法
2014/05/19 职场文书
员工薪酬激励方案
2014/06/13 职场文书
庆元旦演讲稿
2014/09/15 职场文书
网络工程专业大学生求职信
2014/10/01 职场文书
预备党员思想汇报1000字
2014/10/07 职场文书
2014年质量管理工作总结
2014/12/01 职场文书
家属答谢词
2015/01/05 职场文书
运动会表扬稿
2015/01/16 职场文书
法学专业求职信范文
2015/03/19 职场文书
拉贝日记观后感
2015/06/05 职场文书
python字符串常规操作大全
2021/05/02 Python