yeetong
yeetong
  • 发布:2017-09-19 01:02
  • 更新:2017-12-27 19:56
  • 阅读:2251

【报Bug】scroll和键盘导致的滑动BUG

分类:MUI

详细问题描述
scroll里如果有input,然后点击input弹出键盘,最后输入完成后收回键盘。这时候scroll滑不到最顶端或最低端。

这个问题,我在社区找了一圈,很多人遇到,但是都没人真正的解决。有说用refresh()的,但是测试表示无效!

再具体说说我的问题吧:
1.界面里的scroll是区域滑动,顶部有个搜素区域。

  1. 在scroll里的input输入值,收起键盘后,scroll就不能滑动到顶端,,但是!!但是!这里是关键,我测试了一下,我上下乱滑动几下,整个scroll又正常了。。

求解!!

2017-09-19 01:02 2 条评论 负责人:无 分享
已邀请:
n***@gmail.com

n***@gmail.com

这个可能是弹起键盘导致页面高度发生变化,可以更新一下hbuilder版本测试,应该不会出现这个问题了

  • 2***@qq.com

    最新版本还是一样没解决 官方没有解答?

    2018-01-18 11:01

5***@qq.com

5***@qq.com

遇到同样的问题,亲测已解决,解决方法:先在body添加onresize事件监听软键盘是否弹出,软键盘弹出时mui('.mui-scroll-wrapper').scroll().element.scrollTop值会增加 但是 软键盘收回该值并不能归零 导致 页面无法滑动至最顶端,可在软键盘收回时设置mui('.mui-scroll-wrapper').scroll().element.scrollTop=0;可恢复正常滑动。

yeetong

yeetong (作者)

难道没人遇到同样的问题?我还不信这个邪了。。。

就官方的实例程序:offcanvas-drag-left.html这个页面里用到的scroll同样有这个bug呀。
只需要把实例里的侧滑scroll里加入一个input控件,然后让键盘弹出来后,这个bug就出来了。

二十三岁IT男

二十三岁IT男 - 一只小菜鸟

我也遇到一样的问题,但是不会解决 啊

Legion

Legion

同问,这个问题困扰很久了,开始以为自己排版问题,后来在demo里测试也是有这个问题,scroll初始化,refresh()并不能解决

  • 1***@qq.com

    失去焦点以后 mui('.mui-scroll-wrapper').scroll().reLayout();

    重新计算一下布局高度试试

    2017-10-28 10:10

  • Legion

    谢谢你的回答,我再研究研究。

    2017-10-28 13:35

  • yeetong (作者)

    没用,我已经搜索了很多解决方案,尝试后都无解。

    2017-10-29 01:00

  • Legion

    回复 yeetong:我一步步打印测试,发现就是软键盘弹出以后maxScrollY的值变化,还有之前记录的scroll 事件里的y也被改变了,等到键盘缩回去时候,y值跟之前不一样,就导致滚动距离不够数,就滚不上去,到底部时候又重新重置了scroll,y的值刚好和maxScrollY是一样的,所以可以正常滚到顶部,我现在也还没解决,因为在计算y的值的时候逻辑还是没捋清楚,加减没算对

    2017-10-30 08:26

1***@qq.com

1***@qq.com - 天下风云出我辈

失去焦点以后 mui('.mui-scroll-wrapper').scroll().reLayout();
重新计算一下布局高度试试

健健

健健

http://ask.dcloud.net.cn/question/31868 以前就提过 类似问题 后来放弃 没法解决

  • Legion

    楼下和楼上的都说对了,就是布局高度发生变化,我之前死磕滑动的y轴的值,算不准,下午搜到一个帖子解决了,http://blog.csdn.net/yzbben/article/details/60766994

    软键盘弹起以后影响了布局,从新给赋值一下高度,就解决了,当然伴随另一个问题是因为给了高度会导致往下滚页面显示不全,这个可以当它到顶部时候把赋值的高度取消就可以了

    目前我感觉这样算是有很大进展了;

    我觉得还可以有更好的优化办法,暂时还没想到;

    2017-10-30 17:59

回梦無痕

回梦無痕 - 暂停服务

目测是因为键盘使页面高度发生了变化,使到整个区域滚动上移,就是区域滚动顶部有一部分被推上去了。

该问题目前已经被锁定, 无法添加新回复