AlloyTeam / PhyTouch

Smooth scrolling, rotation, pull to refresh, page transition and any motion for the web - 丝般顺滑的触摸运动方案
http://alloyteam.github.io/PhyTouch/
MIT License
2.97k stars 526 forks source link

添加对内部元素具有scroll时的处理 #110

Closed whoiam2007s closed 6 years ago

whoiam2007s commented 6 years ago

当内部元素的scroll出现时,滑动的时候依然会带动整个dom,而不是内部scroll优先,添加处理这种情况的diamante

dntzhang commented 6 years ago

这种场景,内部的 scroll 也使用 alloytouch ,然后内部的阻止冒泡,貌似解决?例如: http://alloyteam.github.io/AlloyTouch/full_page/ https://github.com/AlloyTeam/AlloyTouch/blob/master/full_page/index.html#L278-L283

whoiam2007s commented 6 years ago

full_page的例子测试查看了下,如果min的值设定的不对的话,是无法拉动显示所有内容的。 当内部的scroll的内容的高度是不确定或者动态变化的话,就没法实现了

dntzhang commented 6 years ago

min不可能会设置不对啊。还有就是当内部的scroll的内容的高度是不确定的话,min也是可以动态改变的~

whoiam2007s commented 6 years ago

每次更新内容都要等dom渲染完成后从新获取一次高度然后在设置min的值嘛。。。。

dntzhang commented 6 years ago

是的 ~

whoiam2007s commented 6 years ago

如果已经滑动到最下面,这种情况下动态删除了部分内容,那中间的内容高度肯定就缩短了,这个时候虽然重新设置了min,但是内部的translateY肯定是不对的,难道这个也要根据当前的translateY和被删除元素的高度再重新计算然后.to()来重新定位嘛。。。。

whoiam2007s commented 6 years ago

还有个问题,当内部的内容如果存在图片这种异步加载的资源在更新dom内容后高度是无法同步更新计算出准确值的时候是有问题的,要等图片信息加载过来才知道高度是多少,这样的话计算逻辑就更杂乱了,你提供的这种解决方案,使用人员进行了太多的操作,不太赞同。。。我保留意见

dntzhang commented 6 years ago

你说得有道理。你重新提个pr 给 alloy_touch.css.js,我合进去。 alloy_touch.js 需要使用在 canvas webgl dom,与dom没有直接耦合,所以不作修改~~。