项目还是用angularJs + ionic1.0做的。为什么要自定义滚动条呢?
原因:IOS 自带的触摸事件导致页面上线滑动有空白。所以禁掉了默认的滑动事件:
if(ionic.Platfrom.isIOS()){
document.querySelector('body').addEventListener('touchmove',function(event){
event.preventDefault();
});
结果:导致IOS里面 的ul li 标签页无法滑动了。但是android 倒是可以滑动却没有滚动条,给ul 外出div 设置overflow:atuo;overflow-y:atuo;都没有用。
解决:用ion-scroll代替 ul ,这时候android ios 都可以滑动了,也都有滚动条了。但是,问题来了。在魅族手机上布局一开始show处理后,滑动ion-scroll 有叠层。如下图:
![](https://img-my.csdn.net/uploads/201801/19/1516332137_5236.png)
这兼容性问题 好坑。原因是app底座用了系统的浏览器,没有统一用开源内置浏览器,所以一直以来开发Hybird app兼容问题好蛋疼。
所以只能ios 和android分开实现了。ios用ion-scroll。android 自己给ul写个滚动条。以下代码是按客户要求需要内容多的时候一直显示滚动条的示例
(开始不了解js 有个onscroll 回调 用了 touch事件去做,做不到精准算到布局移动距离。后面debug看到有onscroll回调。布局本身就提供了offsetTop ,这个offsetTop就是滚动条和布局精准的对应。)
if ($scope.timeout) {
$timeout.cancel($scope.timeout