面试总结1
沉寂了一年多,出去活动活动还是有很多好处的,不管是对自己的技能的了解还是面试经验。
1.使用js获取网页页面的绝对位置
function getElementLeft(element){ var actualLeft = element.offsetLeft; var current = element.offsetParent; while(current != null){ ctualLeft += current.offsetLeft; current = current.offsetParent; } return actualLeft; }
function getElementTop(element){ var actualTop = element.offsetTop; var current = element.offsetParent; while(current != null){ actualTop += current.offsetTop; current = current.offsetParent; } return actualTop; }
3.触发haslayout的属性:width,heith,float。。。。。
http://www.cnblogs.com/wine/p/4599819.html
4.判断一个对象是否包含自定义属性而不是原型链上的属性:hasOwnProperty方法
http://www.cnblogs.com/sanshi/archive/2011/03/15/1985344.html
5. 左右两个DIV高度较低与较高的高度DIV一致,用css实现:
1 <div id="mm"> 2 <div id="m1">sss</div> 3 <div id="m2"> 4 qqqqqqqqqqqqq<br> 5 qqqqqqqqqqqq<br> 6 qqqqqqqqqqqq<br> 7 qqqqqqqqqqqq<br> 8 qqqqqqqqqqqq<br> 9 qqqqqqqqqqqq<br> 10 qqqqqqqqqqqq 11 </div> 12 </div>
1 #mm{ 2 margin: 0 auto; 3 width: 1200px; 4 overflow: hidden; 5 } 6 #m1,#m2{ 7 float: left; 8 width: 500px; 9 margin-bottom: -99999px; 10 padding-bottom: 99999px; 11 } 12 #m1{ 13 border:1px solid green; 14 } 15 #m2{ 16 border:1px solid red; 17 }
js
document.getElementById("m1").style.height= document.getElementById("m2").offsetHeight + 'px';
5.解释一下事件委托
事件处理程序过多的问题的解决办法是用“事件委托”。事件委托利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。
click事件会一直冒泡到document层次,利用事件委托可以为整个指定一个onclick事件处理程序,而不必给每个可点击的元素分别添加事件。
其实就是在DOM树种尽量给最高层次上添加一个事件处理程序。