利用vue自定义指令与vuex解决移动端点击输入框,弹出键盘,底部导航被顶起问题

本文介绍了一个解决移动端点击输入框导致底部导航被键盘顶起的问题,通过在Vuex中管理状态,并定义自定义指令v-input监听输入框的聚焦和失焦事件。当输入框获得焦点时,隐藏底部导航,失去焦点时恢复显示。具体实现包括在state中定义footer状态,在mutations和actions中处理,以及在组件中条件渲染底部导航,并在全局注册自定义指令。
摘要由CSDN通过智能技术生成

需求:解决移动端点击输入框,弹出键盘,底部导航被顶起问题
思路:

1、在state中定义footer: true,默认底部导航显示
2、在mutation.js action.js编写修改state.footer的代码,利用getters监视foote变化r
3、条件渲染 (v-show=“footer” )底部导航
4、利用自定义指令v-input 监视input / textarea是否聚焦,进而改变footer
5、聚焦时,el.onfocus,修改footer的值为false,隐藏底部导航栏
6、失去焦点时, el.onblur,修改footer的值为true,显示底部导航栏

App.vue中

HTML部分:

<div v-show="footer">
    <Footer/>
</div>

js部分:

<script>
import Vue from 'vue'
import store from './store/index.js'
import Footer from './components/FooterGuide/Footer'
import {
   mapGetters} from 'vuex'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值