移动开发中遇到的坑

flex布局在qq,uc浏览器中有问题,必须强制让内部flex的元素是display block;

 

100%要想撑满父元素,则父元素必须有明确的高度。否则撑不起来。

 

如果定位的元素想要撑满其相对的元素,有个简单办法,那就是同时设置left,right,top,bottom为0.

 

 1px边框问题,有多种解决方案。

 

iconfont方式使用简单点的图标,自定义性更强。

 

DOM操作中,children属性仅包含Element类型的节点,而childNode属性包含了所有的节点。例如document.children就是实实在在你写的节点的数组,而不包含隐含的那些文字节点。

 

document指代的是整个html文档,而其第一个子元素是文档声明,第二个子元素是html节点。 html这个节点可以通过多种方式来拿到,比如document.documentElement, 比如document.children[0], 比如document.childeNodes[1]

故scrollTop属性,你也得通过documentElement或者document.body.scrollTop来使用咯。

 

对象的属性若是引用类型,对其进行重新赋值的话,仅仅是改变该属性的指向。而没有改变真正的对象。假如有其他人也指向那个对象,则那个对象依然存在。

 

低版本IE里使用returnValue=false来代替event.preventDefault阻止默认行为; 使用cancelBubble=true代替event.stopPropagation来停止冒泡。

 

事件代理原因:事件处理程序以及事件绑定过多,会影响内存和页面响应; 而且代理的方式如果是绑定到document上,就可以不需等待Dom元素构造出来; 而且采用事件代理可以减少dom引用和dom查询,移除和查询dom都比较方便。

 

绑定事件的4种方式: 

dom0: 在dom之外,使用btn.onclick = function() {}

dom2: 在dom之外,使用btn.addEventListener('click', function(){}, false)

在html里面: <a onclick="直接写js代码">,   此时js代码里this表示当前元素

在html里面: <a onclick="调用一个外部js函数">, 此时外部函数里,this表示全局window对象。

dom0,dom2等事件handler执行上下文在元素上的情况,this表示的就是那个绑定事件的元素,也就是所谓的event.currentTarget.

 

js中的json可以使用2种复合类型,4种基本类型,否则无法parse。 所以,undefined不能使用,Date等类型不能使用。非要用的话,请使用字符串代替。

 

 

你可能感兴趣的:(开发,移动)