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 相关文章推荐
不同浏览器对回车提交表单的处理办法
Feb 13 Javascript
对Web开发中前端框架与前端类库的一些思考
Mar 27 Javascript
灵活的理解JavaScript中的this指向
Feb 25 Javascript
jQuery实现无限往下滚动效果代码
Apr 16 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
Feb 08 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
May 31 Javascript
js实现无缝滚动双图切换效果
Jul 09 Javascript
通过js示例讲解时间复杂度与空间复杂度
Aug 06 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
Jan 16 Javascript
js实现轮播图效果 z-index实现轮播图
Jan 17 Javascript
微信小程序实现组件顶端固定或底端固定效果(不随滚动而滚动)
Apr 09 Javascript
jQuery 选择方法及$(this)用法实例分析
May 19 jQuery
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设计模式 State (状态模式)
2011/06/26 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2016/05/13 PHP
PHP基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
javascript中简单的进制转换代码实例
2013/10/26 Javascript
基于jQuery实现交互体验社会化分享代码附源码下载
2016/01/04 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
2016/11/28 Javascript
根据输入邮箱号跳转到相应登录地址的解决方法
2016/12/13 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
Angular5.1新功能分享
2017/12/21 Javascript
利用js给datalist或select动态添加option选项的方法
2018/01/25 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
2018/12/20 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
vue编写简单的购物车功能
2021/01/08 Vue.js
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
Python3 字典dictionary入门基础附实例
2020/02/10 Python
HTML5+JS实现俄罗斯方块原理及具体步骤
2013/11/29 HTML / CSS
Expedia马来西亚旅游网站:廉价酒店,度假村和航班预订
2016/07/26 全球购物
华三通信H3C面试题
2015/05/15 面试题
How TDD works
2012/09/30 面试题
行政副总岗位职责
2014/02/23 职场文书
弄虚作假心得体会
2014/09/10 职场文书
幸福中国演讲稿
2014/09/12 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
环卫处个人工作总结
2015/03/04 职场文书
分布式架构Redis中有哪些数据结构及底层实现原理
2022/03/13 Redis