精通javascript 代码总结
在看了《精通javascript》一书中,里面讲了很多工具函数,先整理一部分。
主要在javascript和css交互的代码:
[javascript]
1. function text(e) {
2. //获取元素文本内容
3. var t = "";
4. e = e.childNodes || e;
5. for (var i = 0, count = e.length; i < count; i++) {
6. t += e[i].nodeType != 1 ? e[i].nodeValue : text(e[i].childNodes);
7. }
8. return t;
9. }
10. function attr(elem, name, value) {
11. //获取或设置元素属性值
12. if (!name || name.constructor != String) return "";
13. name = { "for": "htmlFor", "class": "className"}[name] || name;
14. if (typeof value != "undefined") {
15. elem[name] = value;
16. if (elem.setAttribute) {
17. elem.setAttribute(value);
18. }
19. }
20. return elem[name] || elem.getAttribute(name) || "";
21. }
22. function stopDefault(e) {
23. //防止默认浏览器行为
24. if (e && e.preventDefault) {
25. e.preventDefault();
26. }
27. else {
28. window.event.returnValue = false;
29. }
30. return false;
31. }
32. function stopBubble(e) {
33. //阻止事件冒泡
34. if (e && e.stopPropagation) {
35. e.stopPropagation();
36. }
37. else {
38. window.event.cancelBubble = true;
39. }
40. }
41. //调用示例<a href="#" onclick=" alert('ok'); stopBubble(event);">demo</a>
42. function pageX(elem) {
43. //获取元素的水平位置
44. return elem.offsetParent ? elem.offsetLeft + pageX(elem.offsetParent) : elem.offsetLeft;
45. }
46. function pageY(elem) {
47. //获取元素的垂直位置
48. return elem.offsetParent ? elem.offsetTop + pageY(elem.offsetParent) : elem.offsetTop;
49. }
50. function parentX(elem) {
51. //获取元素相对于父亲的水平位置
52. return elem.parentNode == elem.offsetParent ? elem.offsetLeft : pageX(elem) - pageX(elem.parentNode);
53. }
54. function parentY(elem) {
55. //获取元素相对于父亲的垂直位置
56. return elem.parentNode == elem.offsetParent ? elem.offsetTop : pageY(elem) - pageY(elem.parentNode);
57. }
58. function resetCss(elem, prop) {
59. //设置css一组属性,它可以恢复到原有的设置
60. var old = {};
61. for (var i in prop) {
62. old[i] = elem.style[i];
63. elem.style[i] = prop[i];
64. }
65. return old;
66. }
67. function restoreCss(elem, prop) {
68. for (var i in prop) {
69. elem.style[i] = prop[i];
70. }
71. }
72. function getStyle(elem, styleName) {
73. if (elem.style[styleName]) {//内联样式
74. return elem.style[styleName];
75. }
76. else if (elem.currentStyle) {//IE
77. return elem.currentStyle[styleName];
78. }
79. else if (document.defaultView && document.defaultView.getComputedStyle) {//DOM
80. styleName = styleName.replace(/([A-Z])/g, '-$1').toLowerCase();
81. var s = document.defaultView.getComputedStyle(elem, '');
82. return s && s.getPropertyValue(styleName);
83. }
84. else {//other,for example, Safari
85. return null;
86. }
87. }
88. function fullHeight(elem) {
89. //查找元素可能的高度
90. //如果元素显示那么使用offsetHeight就可以得到高度,如果没有offsetHeight,则使用getHeight()
91. if (getStyle(e
补充:web前端 , JavaScript ,