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中关于indexOf的使用方法与问题小结
Aug 05 Javascript
表头固定(利用jquery实现原理介绍)
Nov 08 Javascript
js switch case default 的用法示例介绍
Oct 23 Javascript
JQuery中$.ajax()方法参数详解及应用
Dec 12 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
Apr 07 Javascript
js禁止表单重复提交
Aug 29 Javascript
vue-cli2.9.3 详细教程
Apr 23 Javascript
微信小程序自定义导航教程(兼容各种手机)
Dec 12 Javascript
关于微信公众号开发无法支付的问题解决
Dec 28 Javascript
详解vue-cli中使用rem,vue自适应
May 06 Javascript
详解小程序BackgroundAudioManager踩坑之旅
Dec 08 Javascript
微信小程序修改checkbox的样式代码实例
Jan 21 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 分库分表hash算法
2009/11/12 PHP
PHP写的资源下载防盗链类分享
2014/05/12 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
ASP中进行HTML数据及JS数据编码函数
2009/11/11 Javascript
js实现上一页下一页的效果【附代码】
2016/03/10 Javascript
JavaScript中setTimeout和setInterval函数的传参及调用
2016/03/11 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
canvas实现探照灯效果
2017/02/07 Javascript
three.js中文文档学习之如何本地运行详解
2017/11/20 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
vue实现分页组件
2020/06/16 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
Python优先队列实现方法示例
2017/09/21 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
2018/04/05 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
python 读取竖线分隔符的文本方法
2018/12/20 Python
python实现远程控制电脑
2019/05/23 Python
Python selenium 自动化脚本打包成一个exe文件(推荐)
2020/01/14 Python
python 检测图片是否有马赛克
2020/12/01 Python
css3的focus-within选择器的使用
2020/05/11 HTML / CSS
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
2013/01/09 HTML / CSS
解决HTML5中滚动到底部的事件问题
2019/08/22 HTML / CSS
DJI大疆德国官方商城:大疆无人机
2018/09/01 全球购物
《果园机器人》教学反思
2014/04/13 职场文书
车辆工程专业求职信
2014/04/28 职场文书
婚礼父母答谢词
2015/01/04 职场文书
2015年基层党组织公开承诺书
2015/01/21 职场文书
雨雪天气温馨提示
2015/07/15 职场文书
尊师重教主题班会
2015/08/14 职场文书
区域销售大会开幕词
2016/03/04 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏