2***@qq.com
2***@qq.com
  • 发布:2021-12-29 16:49
  • 更新:2022-12-03 11:53
  • 阅读:712

【报Bug】输入框聚焦时内容异常移位

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows10

HBuilderX类型: 正式

HBuilderX版本号: 3.3.4

第三方开发者工具版本号: 1.05.2111300

基础库版本号: 2.21.2

项目创建方式: HBuilderX

示例代码:
<template>  
    <!-- 正常执行  使用了height: calc(100% - 0.01rpx); -->  
    <!-- <scroll-view :scroll-y="true" style="height: calc(100% - 0.01rpx);">  
        <view v-for="(item,index) in 30" :key="index" style="height: 88rpx;background-color:#F6F6F6 ;border-radius: 12rpx;margin-bottom: 20rpx;">  
            <input   type="text" maxlength="6" placeholder="请输入您的姓名" style="width: 100%;height: 100%;"/>  
        </view>  
    </scroll-view> -->  

    <!-- 1.非正常 -->  
    <view  style="height:100%;overflow-y: auto;">  
        <view v-for="(item,index) in 30" :key="index" style="height: 88rpx;background-color:#F6F6F6 ;border-radius: 12rpx;margin-bottom: 20rpx;">  
            <input   type="text" maxlength="6" placeholder="请输入您的姓名" style="width: 100%;height: 100%;"/>  
        </view>  
    </view>  

    <!-- 2.非正常 -->  
    <!-- <scroll-view  :scroll-y="true"  style="height:100%;">  
        <view v-for="(item,index) in 30" :key="index" style="height: 88rpx;background-color:#F6F6F6 ;border-radius: 12rpx;margin-bottom: 20rpx;">  
            <input   type="text" maxlength="6" placeholder="请输入您的姓名" style="width: 100%;height: 100%;"/>  
        </view>  
    </scroll-view> -->  

    <!-- 问题  为什么给了scroll-view或view 高度100% input聚焦时 输入框内容区域会移位-->  
</template>  

<script>  
    export default {  
        data() {  
            return {}  
        },  
        onLoad() {  

        },  
        methods: {  

        }  
    }  
</script>  

<style>  
page{  
    width: 100vw;  
    height: 100vh;  
}  
</style>  

操作步骤:
<template>  
    <!-- 正常执行  使用了height: calc(100% - 0.01rpx); -->  
    <!-- <scroll-view :scroll-y="true" style="height: calc(100% - 0.01rpx);">  
        <view v-for="(item,index) in 30" :key="index" style="height: 88rpx;background-color:#F6F6F6 ;border-radius: 12rpx;margin-bottom: 20rpx;">  
            <input   type="text" maxlength="6" placeholder="请输入您的姓名" style="width: 100%;height: 100%;"/>  
        </view>  
    </scroll-view> -->  

    <!-- 1.非正常 -->  
    <view  style="height:100%;overflow-y: auto;">  
        <view v-for="(item,index) in 30" :key="index" style="height: 88rpx;background-color:#F6F6F6 ;border-radius: 12rpx;margin-bottom: 20rpx;">  
            <input   type="text" maxlength="6" placeholder="请输入您的姓名" style="width: 100%;height: 100%;"/>  
        </view>  
    </view>  

    <!-- 2.非正常 -->  
    <!-- <scroll-view  :scroll-y="true"  style="height:100%;">  
        <view v-for="(item,index) in 30" :key="index" style="height: 88rpx;background-color:#F6F6F6 ;border-radius: 12rpx;margin-bottom: 20rpx;">  
            <input   type="text" maxlength="6" placeholder="请输入您的姓名" style="width: 100%;height: 100%;"/>  
        </view>  
    </scroll-view> -->  

    <!-- 问题  为什么给了scroll-view或view 高度100% input聚焦时 输入框内容区域会移位-->  
</template>  

<script>  
    export default {  
        data() {  
            return {}  
        },  
        onLoad() {  

        },  
        methods: {  

        }  
    }  
</script>  

<style>  
page{  
    width: 100vw;  
    height: 100vh;  
}  
</style>  

预期结果:
<template>  
    <!-- 正常执行  使用了height: calc(100% - 0.01rpx); -->  
    <!-- <scroll-view :scroll-y="true" style="height: calc(100% - 0.01rpx);">  
        <view v-for="(item,index) in 30" :key="index" style="height: 88rpx;background-color:#F6F6F6 ;border-radius: 12rpx;margin-bottom: 20rpx;">  
            <input   type="text" maxlength="6" placeholder="请输入您的姓名" style="width: 100%;height: 100%;"/>  
        </view>  
    </scroll-view> -->  

    <!-- 1.非正常 -->  
    <view  style="height:100%;overflow-y: auto;">  
        <view v-for="(item,index) in 30" :key="index" style="height: 88rpx;background-color:#F6F6F6 ;border-radius: 12rpx;margin-bottom: 20rpx;">  
            <input   type="text" maxlength="6" placeholder="请输入您的姓名" style="width: 100%;height: 100%;"/>  
        </view>  
    </view>  

    <!-- 2.非正常 -->  
    <!-- <scroll-view  :scroll-y="true"  style="height:100%;">  
        <view v-for="(item,index) in 30" :key="index" style="height: 88rpx;background-color:#F6F6F6 ;border-radius: 12rpx;margin-bottom: 20rpx;">  
            <input   type="text" maxlength="6" placeholder="请输入您的姓名" style="width: 100%;height: 100%;"/>  
        </view>  
    </scroll-view> -->  

    <!-- 问题  为什么给了scroll-view或view 高度100% input聚焦时 输入框内容区域会移位-->  
</template>  

<script>  
    export default {  
        data() {  
            return {}  
        },  
        onLoad() {  

        },  
        methods: {  

        }  
    }  
</script>  

<style>  
page{  
    width: 100vw;  
    height: 100vh;  
}  
</style>  

实际结果:
<template>  
    <!-- 正常执行  使用了height: calc(100% - 0.01rpx); -->  
    <!-- <scroll-view :scroll-y="true" style="height: calc(100% - 0.01rpx);">  
        <view v-for="(item,index) in 30" :key="index" style="height: 88rpx;background-color:#F6F6F6 ;border-radius: 12rpx;margin-bottom: 20rpx;">  
            <input   type="text" maxlength="6" placeholder="请输入您的姓名" style="width: 100%;height: 100%;"/>  
        </view>  
    </scroll-view> -->  

    <!-- 1.非正常 -->  
    <view  style="height:100%;overflow-y: auto;">  
        <view v-for="(item,index) in 30" :key="index" style="height: 88rpx;background-color:#F6F6F6 ;border-radius: 12rpx;margin-bottom: 20rpx;">  
            <input   type="text" maxlength="6" placeholder="请输入您的姓名" style="width: 100%;height: 100%;"/>  
        </view>  
    </view>  

    <!-- 2.非正常 -->  
    <!-- <scroll-view  :scroll-y="true"  style="height:100%;">  
        <view v-for="(item,index) in 30" :key="index" style="height: 88rpx;background-color:#F6F6F6 ;border-radius: 12rpx;margin-bottom: 20rpx;">  
            <input   type="text" maxlength="6" placeholder="请输入您的姓名" style="width: 100%;height: 100%;"/>  
        </view>  
    </scroll-view> -->  

    <!-- 问题  为什么给了scroll-view或view 高度100% input聚焦时 输入框内容区域会移位-->  
</template>  

<script>  
    export default {  
        data() {  
            return {}  
        },  
        onLoad() {  

        },  
        methods: {  

        }  
    }  
</script>  

<style>  
page{  
    width: 100vw;  
    height: 100vh;  
}  
</style>  

bug描述:

输入框在可滚动的区域内,滚动区域往上滚动后,输入框此时聚焦的话,输入内容会异常往上偏移

2021-12-29 16:49 负责人:无 分享
已邀请:
2***@qq.com

2***@qq.com (作者)

ios系统正常 安卓会出现此问题 (真机预览 使用的 华为mate20 , 华为畅享20pro )

DCloud_UNI_GSQ

DCloud_UNI_GSQ

初步分析是微信小程序的原生input组件实现问题,需反馈到微信小程序社区。

d***@gmail.com

d***@gmail.com

今天刚好也遇到这个问题了。 机型华为mate20(鸿蒙系统),IOS正常。 把scroll-view的高度设置成“height: calc(100% - 0.01rpx);” 好了。 谢谢

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