和 iscroll 比起来有什么 critical changes 吗?解决了什么 iscroll 难以解决的问题?
Closed this issue · 22 comments
看到文档里没有体现,所以问一下,如能把特点写进 README 就好了。
1.iscroll 多年没人维护了, fix了 iscroll 的一些 bug,比如在手指 move 的过程中移出屏幕外的情况 iscroll 没有处理。
2.iscroll 在 probeType 为 3 的情况的实现是基于 js 实现的帧动画,这个在移动端体验是很差的,而 better-scroll 仍然基于 css3 实现。
3.iscroll 的源码构建还是太老了,用 es6 + webpack 重写也是方便维护
4.better-scroll 暂时没有 iscroll 功能多,这点可以考虑以后扩展
btw: better-scroll 文档方面确实有缺失,现在打算搞个官网,快来一起共建啊~ https://github.com/ustbhuangyi/bscroll.io
很棒!
@ustbhuangyi 刚发现一个问题,就是scroll事件会无限的被触发。这个你可以review一下代码看有没有什么情况会触发这种问题。
我并不很赞同作者的答案额。
1、iscroll 还是有维护的,最新版本是5.2.0,只是产品已经很成熟了,在大环境没啥改变的情况下,基本不需要维护。在手指 move 的过程中移出屏幕外的情况 iscroll 可以配置是否继续滚动,并没有你说的问题。
2、 probeType 为 3 的情况的实现确实是基于 js 实现的帧动画,但是 requestAnimationFrame 动画性能上与 CSS3 相比并没有太大区别。
3、iscroll 本身为了兼容各端而做了大量兼容处理,所以不适合使用ES6语法,比如在PC端使用,一般都是直接引入js文件,所以它的构建并不是能说是老。
5、better-scroll 核心还是借用了 iscroll ,你优化它,使它更适合移动端(砍掉对PC端支持),但并没有必要诋毁这么好的一个插件。
- 我没有诋毁 iscroll,iscroll 很棒,我也参考了它的核心实现。
- 我说的 iscroll 没有维护,是至少我决定写 better-scroll 的时候,iscroll 上个提交时间是1年前,而且 issue 里有很多 bug 都没有修, 手指 move 的过程中移出屏幕外的情况至少那个时候是存在的。
- requestAnimationFrame 性能和 CSS3 在移动端性能差别大了,这玩意谁做谁知道。
- iscroll 构建老是事实,源码难以阅读也是事实,兼容性处理和用 ES6 毫无关系,这是因为时代原因,并不代表它不优秀。
iScroll 的确在某些android机下会出现不滑动的问题。
1、我看了 better-scroll 的源码,核心可以说是一样的,算不得是参考,说是借用也完全没问题。
2、requestAnimationFrame 在移动端的 与 CSS3 动画的性能比较,在老版本的安卓是有些大,但是现代浏览器,并没有多大差距。
3、better-scroll probeType 为 3 时,用的也是 requestAnimationFrame ,iscroll的实现也是只在 probeType = 3 时才使用 requestAnimationFrame ,我不知道你的说法是否自相矛盾了。
4、iscroll 的源码、基本函数都有注释,虽然不多,但对照着文档来看并不难。至于兼容处理,即使有 polyfill ,ES6 也基本无法在低版本 IE 上跑。
你确定你有仔细看源码?probeType为3如何实现滚动,麻烦你仔细看看再发表结论吧,滚动性能的差距我也不想说服你,你觉得一样就一样吧,这个issue不用再回复了。
iscroll一堆坑,尽管我无偿使用过它
ES6不兼容2015年及以前的iOS/Android系统是个问题,需要时间普及
感谢BS作者的心血,同时也看到了Demo中也包含了IScroll的遗留问题。比如滑动过程中、手指触摸停止滑动时,会由于动画速度过快导致停止时的列表抖动。期待优化的版本。(目前本人已在IScroll中解决,但有点瑕疵)
@Raydem0n ,ES6 只是源码,编译后还是 ES5 的代码,所以目前兼容性是没有问题的。你提到的在滑动过程中停止的抖动,目前是在手机 iOS 上会出现,PC 模拟无此问题,你有什么好的解决方案可以分享一下吗?
编译的话就没问题了,我之前是在较早的Browser端直接写ES6的语法才报错。
抖动的问题目前没有完美的解决方案,只能禁用Transition。
喔,好吧,那滚动体验就差了。
是的 其实也还好,只是禁用Transition,Transform还是保留。还是没法跟native scroll比,不过为了下拉刷新只能这样了。
谢谢分享。这个框架不错、挺新的。
水滴下拉我也做了一个,效果差不多。试了一下Cube也不是指哪停哪。估计这就是Trasition的瑕疵吧,等待浏览器厂商解决了。
谢谢,这是个好东西!
完全不赞同楼上说的『iscroll 本身为了兼容各端而做了大量兼容处理,所以不适合使用ES6语法』。这都什么年代了,不用ES6只能说明iscroll本身的落后,而不是进步。作为任何一个与时俱进的工具,难道不应该是第一时间使用最新的技术吗?兼容?我管你个兼容个鬼,该换手机换手机,该换电脑换电脑,难道我做个软件还要考虑你IE6的兼容?
完全不赞同楼上说的『iscroll 本身为了兼容各端而做了大量兼容处理,所以不适合使用ES6语法』。这都什么年代了,不用ES6只能说明iscroll本身的落后,而不是进步。作为任何一个与时俱进的工具,难道不应该是第一时间使用最新的技术吗?兼容?我管你个兼容个鬼,该换手机换手机,该换电脑换电脑,难道我做个软件还要考虑你IE6的兼容?
任何技术都是为了满足需求就好,你说的 “作为任何一个与时俱进的工具,难道不应该是第一时间使用最新的技术吗” 我不同意。你不能保证你永远不会需要兼容老版本,你频繁换电脑,不代表用户频繁换电脑。技术经理在考虑技术栈的时候,都是稳定优先的,而不是追求领先时代,狂拽酷炫。不考虑实际,盲目追求最新技术,说明工作思维有局限。
1.iscroll 多年没人维护了, fix了 iscroll 的一些 bug,比如在手指 move 的过程中移出屏幕外的情况 iscroll 没有处理。 2.iscroll 在 probeType 为 3 的情况的实现是基于 js 实现的帧动画,这个在移动端体验是很差的,而 better-scroll 仍然基于 css3 实现。 3.iscroll 的源码构建还是太老了,用 es6 + webpack 重写也是方便维护 4.better-scroll 暂时没有 iscroll 功能多,这点可以考虑以后扩展 btw: better-scroll 文档方面确实有缺失,现在打算搞个官网,快来一起共建啊~ https://github.com/ustbhuangyi/bscroll.io
为啥使用 better-scroll 1.x版本里面,"手指 move 的过程中移出屏幕外的情况 iscroll 没有处理。",这个问题依旧存在呢?这块有没有解决方案,或者现状最新的是怎么解决的呢?
感谢BS作者的心血,同时也看到了Demo中也包含了IScroll的遗留问题。比如滑动过程中、手指触摸停止滑动时,会由于动画速度过快导致停止时的列表抖动。期待优化的版本。(目前本人已在IScroll中解决,但有点瑕疵)
这个目前有什么好的方案吗