博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第一次使用isScroll.js遇到的问题
阅读量:5298 次
发布时间:2019-06-14

本文共 2570 字,大约阅读时间需要 8 分钟。

  一直以来都有一个问题,在做移动app的时候页面中部分内容滑动总是有问题,有时候可以很流畅的滑动,有时候就像僵住了一样,怎么样都滑不动,这种情况在华为手机上出现的最多,有时候正常,大多时候不正常。我刚开始布局就是计算出要滑动的那部分内容在页面中的高度,然后如果里面的内容超过就overflow:scroll。但是问题就是出现在这里,刚开始是真的没有头绪,因为看起来很正常。然后百度到说加一句代码-webkit-overflow-scrolling: touch;就可以解决问题,但是这时候我已经尝试另外的方法了,所以这个我也没有验证是否可靠。

  然后我是用了一个移动端插件isScroll.js,这是专门做移动端滑动事件的,因为从没接触过,所以也是懵,贴上一个简易学习的网址:http://www.360doc.com/content/14/0724/11/16276861_396699901.shtml,容易上手。在这里我简单写一下要注意的问题,第一就是一定要给滑动部分的那个wrapper盒子一个高度,然后就是使用了isScroll以后会自动把输入框那些东西禁掉了,即不能输入,copy上我的代码。我刚开始是这样写的:

  

$(document).ready(function(){            var allHeight = parseInt(document.documentElement.clientHeight);            var headHeight = parseInt($('#header').css("height"));            //isScroll容器样式设置            $("#wrapper").css({                 'position':'initial',                 'height':allHeight-headHeight-220,                 'overflow':'hidden'            });            var myscroll;            function loaded(){                setTimeout(function(){                    myscroll=new iScroll("wrapper",{                        hscrollbar:false,                        vscrollbar:false,                        hscroll:false,                        vscroll:true,                        momentum:false,                        snap:true,                        preventDefault:false,                        checkDOMChanges:true,                        mouseWheel:true, //侦听鼠标滚轮事件                        //重写这个方法,因为isScroll让输入框禁用了                        onBeforeScrollStart: function (e) {                             var target = e.target;                             while (target.nodeType != 1) target = target.parentNode;                             if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA')                                 e.preventDefault();                             }                    });                },100 );            }                        window.addEventListener("load",loaded,false);            myscroll.refresh();                       document.addEventListener('touchmove', function (e) {e.preventDefault(); }, false);        });

       当然,这时候还是有问题,在手机上测试的时候不分手机类型的都不能滑动,因为不了解isScroll,所以不知道从哪里开始找,后来找测bug的同学给我找,结果他一百度就出来了,我也是比较无语,其实我是百度过的,但是不知道怎么说需求,所以不能精确的找出答案。

  百度告诉我只要把最后一行代码,即document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);这一句注释掉就好了,因为这是对全局的移动事件进行阻止默认事件,如果在外层有这个事件,那你插件里面怎么改可能都没用,所以不管我怎么改isScroll里面的参数都是不行的。

  在这里先记录下来遇到的问题,以后在做项目的时候再继续探讨isScroll,好用是好用,但是坑也多,还得注意。也不知道什么时候才会静下心来读一下源码

 

  

转载于:https://www.cnblogs.com/yaoya/p/6758059.html

你可能感兴趣的文章
数据库范式温习
查看>>
html 布局
查看>>
【bzoj3456】城市规划 容斥原理+NTT+多项式求逆
查看>>
[ActionScript 3.0] 使用Embed在类中嵌入字体
查看>>
敏感字符的识别+处理
查看>>
[daily][nfs] nfs客户端设置
查看>>
mysql求两个时间列的差值
查看>>
外部事件触发调用对象方法时this指向问题
查看>>
Centos7 关闭防火墙
查看>>
033 Search in Rotated Sorted Array 搜索旋转排序数组
查看>>
zabbix 报错汇总
查看>>
转移zencart网站时,后台出现空白页面
查看>>
leetcode254- Factor Combinations- medium
查看>>
STM32: 实现ADVANCED ENCRYPTION STANDARD(AES) – 128-BIT加密算法
查看>>
Linux下简单的取点阵字模程序
查看>>
二叉树基础
查看>>
Python字符集
查看>>
第三章 共享程序集和强命名程序集
查看>>
思与在,为何没有行
查看>>
[WPF]绑定到界面的数组不支持调度线程以外对其更改的办法
查看>>