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 相关文章推荐
在js文件中如何获取basePath处理js路径问题
Jul 10 Javascript
JavaScript网页定位详解
Jan 13 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
Jun 18 Javascript
javascript实现网页端解压并查看zip文件
Dec 15 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
Oct 11 Javascript
jQuery特殊符号转义的实现
Nov 30 Javascript
详解.vue文件中监听input输入事件(oninput)
Sep 19 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
Oct 31 Javascript
React之PureComponent的使用作用
Jul 10 Javascript
Vue快速实现通用表单验证功能
Dec 05 Javascript
javascript操作向表格中动态加载数据
Aug 27 Javascript
JavaScript数组类型Array相关的属性与方法详解
Sep 08 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新手上路(十三)
2006/10/09 PHP
php关闭warning问题的解决方法
2016/05/17 PHP
php 人员权限管理(RBAC)实例(推荐)
2017/05/24 PHP
详解PHP如何更好的利用PHPstorm的自动提示
2017/08/18 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
用javascript实现给图片加链接
2007/08/15 Javascript
判断脚本加载是否完成的方法
2009/05/26 Javascript
javaScript Array(数组)相关方法简述
2009/07/25 Javascript
基于jquery实现省市区三级联动效果
2015/12/25 Javascript
jquery实现网页定位导航
2016/08/23 Javascript
js实现点击切换checkbox背景图片的简单实例
2017/05/08 Javascript
详解html-webpack-plugin用法全解
2018/01/22 Javascript
单页面vue引入百度统计的使用方法示例详解
2018/10/13 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
2019/04/12 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
这样回答继承可能面试官更满意
2019/12/10 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
Python3调用微信企业号API发送文本消息代码示例
2017/11/10 Python
python实现将excel文件转化成CSV格式
2018/03/22 Python
django 微信网页授权登陆的实现
2019/07/30 Python
Python传递参数的多种方式(小结)
2019/09/18 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
元旦红领巾广播稿
2014/02/19 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
离婚协议书范本2014
2014/10/27 职场文书
2014年减负工作总结
2014/12/10 职场文书
师德承诺书2015
2015/04/28 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
Django drf请求模块源码解析
2021/06/08 Python
Springboot集成阿里云OSS上传文件系统教程
2021/06/28 Java/Android