前提:
scroll-view作为页面顶部横向导航(scroll-x为true,scroll-with-animation为true,scroll-view在页面中为fixed定位,scroll-view的子元素总宽度超过600px)
- 当前 Bug 的表现(可附上截图)
1,通过设置scroll-left去改变scroll-view的当前位置。当一次设置的改变值(设置值 - 初始值)大于600(左右),滚动动画无法一次完成,在下一次页面刷新的Tick中才能完成滚动。
2,当前页面上拉至低端,真机上继续上拉进入即将回弹的模式。如果顶端fixed定位的scroll-view的子元素宽度超过600,当页面继续上拉高度超过scroll-view本身加上其到页面顶端的高度时,该scroll-view中的子元素会闪动消失。释放页面回弹后,子元素重新出现。经页面审查,该过程scroll-view元素本身未动,其子元素消失。
- 预期表现
1,无论scroll-view子元素横向宽度多长,能完成滚动动画,滚动至正确位置。
2,页面上拉,fixed定位的scroll-view元素中的子元素能正常显示。
- 复现路径
- 提供一个最简复现 Demo
<scroll-view class=“tab_scroll_lay_fixed” scroll-with-animation="{{true}}" scroll-x scroll-left="{{scrollLeft}}">
<view class=“tab_item”>标签很长很长很长</view>
<view class=“tab_item”>标签很长很长很长</view>
<view class=“tab_item”>标签很长很长很长</view>
<view class=“tab_item”>标签很长很长很长</view>
<view class=“tab_item”>标签很长很长很长</view>
<view class=“tab_item”>标签很长很长很长</view>
…
</scroll-view>
第二个确实能重现,小程序框架并没有对子元素做任何操作,看起来是 iOS 下 fixed 元素 + -webkit-overflow-scrolling: touch; 的渲染bug,写一个同样的示例跑在safari也有问题,暂时没找到有什么方法可以规避
你好,请提供一下出现问题的机型和微信版本,以及能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。