Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

和 iscroll 比起来有什么 critical changes 吗?解决了什么 iscroll 难以解决的问题? #36

Closed
Dafrok opened this issue Mar 13, 2017 · 22 comments

Comments

@Dafrok
Copy link

Dafrok commented Mar 13, 2017

看到文档里没有体现,所以问一下,如能把特点写进 README 就好了。

@ustbhuangyi
Copy link
Owner

ustbhuangyi commented Mar 13, 2017

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

@Dafrok
Copy link
Author

Dafrok commented Mar 13, 2017

很棒!

@Dafrok Dafrok closed this as completed Mar 13, 2017
@towry
Copy link

towry commented May 25, 2017

@ustbhuangyi 刚发现一个问题,就是scroll事件会无限的被触发。这个你可以review一下代码看有没有什么情况会触发这种问题。

@NameLi
Copy link

NameLi commented Jul 7, 2017

我并不很赞同作者的答案额。
1、iscroll 还是有维护的,最新版本是5.2.0,只是产品已经很成熟了,在大环境没啥改变的情况下,基本不需要维护。在手指 move 的过程中移出屏幕外的情况 iscroll 可以配置是否继续滚动,并没有你说的问题。
2、 probeType 为 3 的情况的实现确实是基于 js 实现的帧动画,但是 requestAnimationFrame 动画性能上与 CSS3 相比并没有太大区别。
3、iscroll 本身为了兼容各端而做了大量兼容处理,所以不适合使用ES6语法,比如在PC端使用,一般都是直接引入js文件,所以它的构建并不是能说是老。
5、better-scroll 核心还是借用了 iscroll ,你优化它,使它更适合移动端(砍掉对PC端支持),但并没有必要诋毁这么好的一个插件。

@ustbhuangyi
Copy link
Owner

ustbhuangyi commented Jul 7, 2017

  1. 我没有诋毁 iscroll,iscroll 很棒,我也参考了它的核心实现。
  2. 我说的 iscroll 没有维护,是至少我决定写 better-scroll 的时候,iscroll 上个提交时间是1年前,而且 issue 里有很多 bug 都没有修, 手指 move 的过程中移出屏幕外的情况至少那个时候是存在的。
  3. requestAnimationFrame 性能和 CSS3 在移动端性能差别大了,这玩意谁做谁知道。
  4. iscroll 构建老是事实,源码难以阅读也是事实,兼容性处理和用 ES6 毫无关系,这是因为时代原因,并不代表它不优秀。

@towry
Copy link

towry commented Jul 7, 2017

iScroll 的确在某些android机下会出现不滑动的问题。

@NameLi
Copy link

NameLi commented Jul 8, 2017

1、我看了 better-scroll 的源码,核心可以说是一样的,算不得是参考,说是借用也完全没问题。
2、requestAnimationFrame 在移动端的 与 CSS3 动画的性能比较,在老版本的安卓是有些大,但是现代浏览器,并没有多大差距。
3、better-scroll probeType 为 3 时,用的也是 requestAnimationFrame ,iscroll的实现也是只在 probeType = 3 时才使用 requestAnimationFrame ,我不知道你的说法是否自相矛盾了。
4、iscroll 的源码、基本函数都有注释,虽然不多,但对照着文档来看并不难。至于兼容处理,即使有 polyfill ,ES6 也基本无法在低版本 IE 上跑。

@ustbhuangyi
Copy link
Owner

你确定你有仔细看源码?probeType为3如何实现滚动,麻烦你仔细看看再发表结论吧,滚动性能的差距我也不想说服你,你觉得一样就一样吧,这个issue不用再回复了。

@hasbug
Copy link

hasbug commented Jul 25, 2017

iscroll一堆坑,尽管我无偿使用过它

@Raydem0n
Copy link

ES6不兼容2015年及以前的iOS/Android系统是个问题,需要时间普及

@Raydem0n
Copy link

感谢BS作者的心血,同时也看到了Demo中也包含了IScroll的遗留问题。比如滑动过程中、手指触摸停止滑动时,会由于动画速度过快导致停止时的列表抖动。期待优化的版本。(目前本人已在IScroll中解决,但有点瑕疵)

@ustbhuangyi
Copy link
Owner

@Raydem0n ,ES6 只是源码,编译后还是 ES5 的代码,所以目前兼容性是没有问题的。你提到的在滑动过程中停止的抖动,目前是在手机 iOS 上会出现,PC 模拟无此问题,你有什么好的解决方案可以分享一下吗?

@Raydem0n
Copy link

编译的话就没问题了,我之前是在较早的Browser端直接写ES6的语法才报错。

抖动的问题目前没有完美的解决方案,只能禁用Transition。

@ustbhuangyi
Copy link
Owner

喔,好吧,那滚动体验就差了。

@Raydem0n
Copy link

是的 其实也还好,只是禁用Transition,Transform还是保留。还是没法跟native scroll比,不过为了下拉刷新只能这样了。

@ustbhuangyi
Copy link
Owner

ustbhuangyi commented Nov 15, 2017

@Raydem0n ,可以关注一下 cube-ui

@Raydem0n
Copy link

谢谢分享。这个框架不错、挺新的。
水滴下拉我也做了一个,效果差不多。试了一下Cube也不是指哪停哪。估计这就是Trasition的瑕疵吧,等待浏览器厂商解决了。

@hainee
Copy link

hainee commented Nov 16, 2017

谢谢,这是个好东西!

@fengerzh
Copy link

完全不赞同楼上说的『iscroll 本身为了兼容各端而做了大量兼容处理,所以不适合使用ES6语法』。这都什么年代了,不用ES6只能说明iscroll本身的落后,而不是进步。作为任何一个与时俱进的工具,难道不应该是第一时间使用最新的技术吗?兼容?我管你个兼容个鬼,该换手机换手机,该换电脑换电脑,难道我做个软件还要考虑你IE6的兼容?

@HiWayne
Copy link

HiWayne commented May 5, 2019

完全不赞同楼上说的『iscroll 本身为了兼容各端而做了大量兼容处理,所以不适合使用ES6语法』。这都什么年代了,不用ES6只能说明iscroll本身的落后,而不是进步。作为任何一个与时俱进的工具,难道不应该是第一时间使用最新的技术吗?兼容?我管你个兼容个鬼,该换手机换手机,该换电脑换电脑,难道我做个软件还要考虑你IE6的兼容?

任何技术都是为了满足需求就好,你说的 “作为任何一个与时俱进的工具,难道不应该是第一时间使用最新的技术吗” 我不同意。你不能保证你永远不会需要兼容老版本,你频繁换电脑,不代表用户频繁换电脑。技术经理在考虑技术栈的时候,都是稳定优先的,而不是追求领先时代,狂拽酷炫。不考虑实际,盲目追求最新技术,说明工作思维有局限。

@hhcol620
Copy link

hhcol620 commented Nov 4, 2021

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 没有处理。",这个问题依旧存在呢?这块有没有解决方案,或者现状最新的是怎么解决的呢?

@hhcol620
Copy link

hhcol620 commented Nov 4, 2021

感谢BS作者的心血,同时也看到了Demo中也包含了IScroll的遗留问题。比如滑动过程中、手指触摸停止滑动时,会由于动画速度过快导致停止时的列表抖动。期待优化的版本。(目前本人已在IScroll中解决,但有点瑕疵)

这个目前有什么好的方案吗

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants