JS 操作Dom节点之样式
2014-07-14 10:01
405 查看
为了提高用户体验,我们经常会动态修改Dom节点的样式,各种浏览器差异比较大,我们如何应对?不断尝试,不断总结~!
内联样式、外部样式:
Reference: http://www.quirksmode.org/dom/w3c_cssom.html
1. style、getComputedStyle、currentStyle
内嵌样式:<!--body --> <div style="width: 30px;background-color: #ff6a00;">我就是傻里傻气的,完全素颜!</div>
1 //内联样式优先级最高,通过style获取的样式是最准确的 2 var elm = document.getElementById('J-demo'); 3 4 //通常这样获取 5 elm.style.width 6 elm.style.backgroundColor
内联样式、外部样式:
<!--css--> <link ref="stylesheet" href="demo.css"> <style> .demo { width: 30px; background-color: #ff6a00; } </style> <!--body --> <div id="J-demo" class="demo">你想那么容易看我素颜?没那么容易...</div>
var elm = document.getElementById('J-demo'), elmStyle; elm.style.xxx //只能获取定义的内联样式 //如果标签没有定义相关的内联样式,应该这么办: elmStyle = elm.currentStyle ? elm.currentStyle.getAttribute('background-color') : window.getComputedStyle(elm, null).getPropertyValue('background-color'); getPropertyValue(name) //name不要使用驼峰命名的名称 getAttribute(name) //如果考虑该死的IE6, name 必须是驼峰命名的名称 //为什么不用下标[name]来获取属性值呢? //浏览器对样式属性解释名称不一样,比如float,有的叫cssFloat,有的叫styleFloat
2. screen属性
//显示器可用宽度、高度,不包含任务栏 availWidth、availHeight //显示器屏幕的宽度、高度 width、height
3. 元素视图方法、属性
//让元素滚动到可视区域 scrollIntoView() //内容区域的左上角相对于整个元素左上角的位置(包括边框) clientLeft clientTop //内容区域的高度和宽度,包括padding,不包括边框和滚动条 clientWidth clientHeight //相对于最近的祖先定位元素的偏移值 offsetLeft offsetTop //返回最近的且定位的祖先元素 offsetParent //offsetParent元素只可能是下面这几种情况: //1. <body> //2. position不是static的元素 //3. <table>, <th> 或<td>,但必须要position: static //整个元素的尺寸(包括边框) offsetWidth offsetHeight //元素滚动的像素大小,可读可写 scrollLeft scrollTop //整个内容区域的宽高,包括隐藏部分 scrollWidth scrollHeight //兼容问题:当外层元素没有设置overflow,但内容超过外层元素宽高时,浏览器获取的值将不准确 //解决方法:对外层元素设置overflow属性
4. 鼠标位置
//鼠标相对于window的偏移 event.clientX event.clientY //鼠标相对于显示器屏幕的偏移坐标 event.screenX event.screenY
.Thingking
学会这些通用的样式处理方法,操作Dom样式,制作出漂亮的页面style,将会更加得心应手。Reference: http://www.quirksmode.org/dom/w3c_cssom.html
相关文章推荐
- 【经验积累】JS,HTML DOM 在dom操作获取节点时,要注意文本节点的问题
- JS操作DOM节点实现网页更新
- js获取节点 dom操作
- js获取节点 dom操作
- JS操作DOM节点实现网页更新
- js学习小结(十)2014.5.10.11(DOM2和DOM3的变化,操作样式的DOM API(1))
- js操作DOM节点
- JS:DOM相关:table对象,节点操作
- DOM操作HTML文档;js创建表格;清除空文本节点
- JS操作DOM节点实现网页更新
- 【JS--DOM-节点操作1】 基础 (待整理)
- 怎么用js操作dom节点的一些方法
- js获取节点 dom操作
- js获取节点 dom操作
- JS操作DOM节点实现网页更新
- js操作dom(4)-关于xml节点属性的操作
- 【JS--DOM-节点操作2】--createElement()、appendChild()、insertBefore()、自定义的insertAfter()
- js+DOM创建和操作节点
- js获取节点 dom操作
- js和jquery对dom节点的操作(创建/追加)