微信公开课
微信公开课小程序热门讨论关于「获取键盘高度不准确」的小程序开发问题
补充:试图让底部的按钮悬浮在键盘上方,在基础机型上获取的键盘高度是准确的,但是在一些全面屏手机比如iPhoneX或者小米8上都很不理想个人认为小程序似乎没有计算全面屏中键盘下方的高度有什么办法可以获取所有手
展开:试图让底部的按钮悬浮在键盘上方,在基础机型上获取的键盘高度是准确的,但是在一些全面屏手机比如iPhoneX或者小米8上都很不理想个人认为小程序似乎没有计算全面屏中键盘下方的高度有什么办法可以获取所有手机上准确的键盘高度吗备注:我希望让按钮或者view悬浮在键盘上方,已知input中可以设置cursorspacing属性即速小程序:刚刚完成了一种比较满意的实现方式,步骤如下:1设置input的cursorspacing,比如140<inputcursorspacing=1402底部放置一个按钮,然后在页面上加入一个隐藏的按钮,该按钮是底部按钮在键盘弹出时的副本;并且这个隐藏按钮只有在键盘弹起时显示,而底部按钮只有在键盘隐藏时显示这个隐藏按钮距离input组件的纵向距离是固定的,等于cursorspacing的值值减去该按钮高度这样该键盘显示时就正好在键盘上方,而不用考虑键盘的高度<blockwx:if={{keyboardPopUp}}<viewclass=keyboardbuttonanimation={{animation}}继续<view<block<blockwx:else<viewdataid=login_button_10class=bottombuttonbindtap=clickLoginButton继续<view<block3但是如果要完成和键盘一起弹出和收起的动画的话,就不能让该隐藏按钮直接在键盘上方显示,需要将隐藏按钮到input的距离设置的更大,同时在键盘弹出时,加上上移的动画;收起时,加上下移的动画inputFocus(e){consolelog(inputFocus:+JSONstringify(e));thissetData({keyboardPopUp:true})thisanimationtranslateY(150)step({duration:250});thissetData({animation:thisanimationexport()});},inputBlur(e){consolelog(inputBlur:+JSONstringify(e));thisanimationtranslateY(0)step({duration:350});thissetData({animation:thisanimationexport()});thissetData({keyboardPopUp:false})}备注:由于从检测到键盘弹出事件到动画响应有一点时间间隔,你会发现该按钮和键盘弹出并不是完全同步的,有一定的时间差目前效果只做到这里,如果有更好的方式,欢迎继续回答:可以针对全面屏增加底部高度~
更多有关「获取键盘高度不准确」的讨论可以前往微信公开课小程序参与互动哦!了解更多