关于微信小程序地图组件里面运用input的方法

关于微信小程序地图组件里面运用input的方法


很多人在做项目的时候不可避免的会遇到如图这样的需求,这种是很常见的一种,这种地图上面加一个表单,看起来就给人一种高达上的感觉,尽管他不一定真的有用,不一定真的会给用户带来很好的体验,
在这里插入图片描述
这里可以明显的看出来第一个地址,当然是页面的跳转,然后第二个和第三个看一下就明白,这个是一个下拉的选择框,然后最后一个因为需要输入框的高度跟随输入字数的变化而变化,所以这里我用的是textarea,如果你是第一次写这个我相信你一定是很懵的一个状态,上去之后直接就是一个view, 然后你会发现,没有任何效果,你根本找不到你的view在哪里,加一个背景颜色, 然后你还是找不到

这个时候你或许是多多少少的明白了什么,然后直接给了view一个z-index,给一个最大的权重,但是你还是发现他没有出现。接下来我们看看开发文档上的说明, 我这里用的是uni-app
在这里插入图片描述
重点来了,开发文档是这么讲的

map组件是由引擎创建的原生组件,它的层级是最高的,不能通过 z-index 控制层级。在cover-view上绘制内容,可使用组件自带的marker、controls等属性,也可以使用组件。

OK 使用cover-view , 这里你写的时候一定要小心了,如果你引入的UI 组件, 你就可以放弃了, 因为除了cover-view外的其他组件都会出现各种各样样的奇怪的问题。

这里你可能在写的过程中,微信开发者工具里面并没有发现什么异常,但是一旦运行到真机之后,很多功能都会失常。

就比如这个输入框, 在微信开发者工具上面是没有任何问题的,点击输入框输入没有任何异常,但是一旦运行真机之后会发现,我们仅仅可以看到这个输入框包括这个输入框没有输入任何文字的时候的占位符我们都可以看的到。 但是我们点击输入框的时候发现没有聚焦,输入法也没有弹出来,这种情况很明显就是他的上方有什么东西阻止了我们的点击,也就是层级造成了这种不正常的情况。

如果下拉选择框我没有办法正常做出来的话,无所谓,我可以跳转到另一个页面让用户去选择,选择之后再返回当前页面,但是这种输入框没有必要再跳转页面输入文字之后再返回吧。

接下来说一种解决的方案
在这里插入图片描述

<cover-view class="text-box" @click="textFocus">
	<textarea @blur="()=>{this.is_focus = false}" :focus="is_focus" auto-height 						value="" placeholder="请输入留言" />
</cover-view>

我在textarea外面包裹一层coverview , 如果这个textarea我们点击不到的话 , 这个cover-view是正常的可以被点击的,我们给外面的这个cover-view添加一个点击事件,当点击发生的时候让这个输入框获取焦点,我这里给了一个变量,通过这个is_focus的变量来控制输入框是否获取焦点,当我点击这个cover-view的时候就让他为true

接下来再textarea里面一个事件,当失去焦点时时候触发事件让is_focus = false
如此一来,测试结果完全没有问题。巧妙的利用这两个事件就解决了这个问题了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WEB嘟嘟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值