这两天客户要求交付的系统必须要能够在ipad上使用,但是我们的系统从来都没有在除pc端以外的地方使用过,所以出现了很多了问题,在安卓系统的平板上显示正常,但是在ipad端显示的时候会有讨厌的橡皮筋效果。目前系统是在一个固定的框架中嵌套一个iframe,所以在滚动iframe里面的table时,外面的系统也会跟着系统,客户非常不满意这样的体验效果,同时还出现了另外的一个问题,iframe里面的内容不能上下滚动,这个直接影响到用户的使用。之前从来都是处理windows的pc端,从来没有处理过ipad,内心还是有点小小的胆怯,但是最终还是完美的解决了问题。
1. 去掉讨厌的橡皮筋效果。
首先判断当前是不是ipad或者是iphone,如果是的话加上touchmove事件, passive: false 是必须的,切不可以省略
bodynode.addEventListener('touchmove', (e) => {
e.preventDefault();
}, { passive: false });
2. iframe内部不能滚动的问题:
此处涉及到两个css样式属性-webkit-overflow-scrolling:touch; overflow: auto;
在iframe外面加上一层div,设置iframe的宽度和高度为100%,
<div id='divTest' style='width:100%;height:100%;-webkit-overflow-scrolling:touch; overflow: auto;'><iframe id='iframeTest' src = ‘’ scrolling='yes' style='width:100%;height:100%;border:0px'>