收藏
回答

input组件遇到fixed属性BUG

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug input 客户端 7.0.3 2.2.1


输入框在获得焦点的同时,判断如果页面内容高度大于屏幕高度,则进行滚动到页面底部:

onFocus: function() {
    var sys = wx.getSystemInfoSync()
    var query = wx.createSelectorQuery()
    query.select('.container').boundingClientRect(function(res) {
        if (res && res.height && res.height > sys.windowHeight) {
            wx.pageScrollTo({
                scrollTop: res.height - sys.windowHeight
            })
        }
    }).exec()
}


此时发现,input组件也跟着页面一起滚动了。input外层有一个view,并且设置为fixed属性bottom=0。


最后一次编辑于  04-10
回答关注问题邀请回答
收藏

1 个回答

  • 再见,电脑崽
    再见,电脑崽
    04-10

    想到一个好办法,基本可以解决问题:

    给input外层的view加上 style='position: {{inputPosition}}',view.input是page的直接子元素,记得设置page {position: relative}


    默认inputPosition是fixed

    当input获得焦点onFocus时,修改inputPosition为absolute

    当input失去焦点onBlur时,修改为fixed



    这样一来问题得到解决,虽然会导致input不跟随键盘出现速度,当页面滚动完成后,input也差不多上来了,总比错位强得多。

    04-10
    赞同
    回复