移动端开发踩过的坑

2017-01-04  本文已影响0人  lMadman

1.min-height的继承问题

这不是一个h5的问题,但是也是在这次中正好遇到的。
你也许会给一个元素一个 min-height,然后你会发现他的子元素在大部分浏览器——而且是现代浏览器——却不能再继承它了。
也就是父子元素都用了min-height:100%,子元素会得不到预期的高度。
你也有很多种解决方法,比如在用min-height:100%的同时加一个 height:1px,或者用js动态的去加。
但是前者当你元素本身存在overflow:hidden的时候,会抵消到滚动条,后者有效率问题,而且会闪一下。
所以我推荐另一种方法,当你不用去顾虑低版本浏览器,比如在h5上面时。
把父元素的display设定为table,子元素的当然是设定为table-cell。 这样子元素就会自动填充满父元素,而父元素你就可以正常的用min-height了。

2.click事件,模拟器上都没问题,但是手机上就是不触发

也许是为了性能考虑吧,手机上不会去主动的监听click之类的事件,你需要在监听的dom上css,cursor:pointer

3.浏览器后退不刷新

这种情况是以前遇到的,这里也再说一下。
主要会发生在webview里多一点。当你点击后退时候,页面是以缓存形式出现的,而不是刷新后的。很多情况下这不是你预期的效果。
解决方法是用js:

window.onpageshow =function(evt){
// If persisted then it is in the page cache, force a reload of the page.
  if(evt.persisted){ 
     document.body.style.display ="none";
     location.reload();
  }
};

onpageshow每次页面加载都会触发,无论是从缓存中加载还是正常加载。这是他和onload的区别
persisted判断页面是否从缓存中读出,利用这两个属性就可以很好地完成我们的要求。

上一篇下一篇

猜你喜欢

热点阅读