vue 移动端M站vant tabbar被软键盘顶上来或有fixed属性的盒子被顶上来的解决方法

首先先了解onresize这个方法:当浏览器被重置大小时执行,他相当于一个监听函数。

一般同学了解完这个函数后应该脑袋里就已经浮现出了一系列的解决方案.

我的解决方案是首先创建三个变量:

1:通过v-show控制盒子的显示与隐藏,

2:记录手机的高度,

3:记录软键盘弹出后,当前屏幕的高度(解释一下,当调用软键盘后,屏幕的高度会发生改变,屏幕的高度会等于(手机原始高度-软键盘的高度))

  <div v-show="bottomIsShow">
      <Bottom></Bottom>
    </div>  

data(){
    return {
          bottomIsShow:true,//控制底部tabbar显示与隐藏
          defaultPhoneHeight:0, //屏幕默认高度
          nowPhoneHeight:0, //屏幕现在的高度
    }
},
  mounted() {
    this.defaultPhoneHeight = window.innerHeight
    window.onresize = ()=>{ //这个方法会被调用两次,软键盘弹出后和软件收起后
      this.nowPhoneHeight = window.innerHeight 
    }
  },
  watch:{
    nowPhoneHeight:function(){
      if(this.defaultPhoneHeight != this.nowPhoneHeight){
        // 当软键盘弹出,改变bottomIsSHow变量然后去控制bottom的显示与隐藏
        this.bottomIsShow=false;
      }else{
        // 相等代表软键盘收起后,与上同理
        this.bottomIsShow=true
      }
    },
  },

  destroyed() {
    //页面销毁前要记得这个监听消除掉;
    window.onresize = null
  }

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
对于Vue 3和Vant移动端TabBar的使用,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Vue 3和Vant。你可以使用以下命令来安装它们: ```bash npm install vue@next vant ``` 2. 在你的Vue项目中,创建一个新的组件文件,例如`TabBar.vue`。 3. 在`TabBar.vue`文件中,引入VueVant的相关组件和样式: ```javascript <template> <div> <van-tabbar v-model="active"> <van-tabbar-item icon="home-o" to="/"> 首页 </van-tabbar-item> <van-tabbar-item icon="search" to="/search"> 搜索 </van-tabbar-item> <van-tabbar-item icon="star-o" to="/favorites"> 收藏 </van-tabbar-item> <van-tabbar-item icon="contact" to="/profile"> 个人中心 </van-tabbar-item> </van-tabbar> </div> </template> <script> import { Tabbar, TabbarItem } from 'vant'; export default { components: { [Tabbar.name]: Tabbar, [TabbarItem.name]: TabbarItem, }, data() { return { active: '/', }; }, }; </script> <style> /* 这里可以添加自定义样式 */ </style> ``` 4. 在你的主应用组件中,例如`App.vue`,使用`TabBar`组件: ```html <template> <div id="app"> <!-- 其他内容 --> <TabBar /> </div> </template> <script> import TabBar from './components/TabBar.vue'; export default { components: { TabBar, }, }; </script> <style> /* 这里可以添加全局样式 */ </style> ``` 5. 最后,你可以根据自己的需要在`TabBar.vue`中设置每个Tab项的图标、文字和链接。你还可以通过修改`active`的值来控制当前选中的Tab。 这样,你就可以在Vue 3项目中使用Vant移动端TabBar了。记得根据自己的需求进行样式和功能的调整。希望对你有帮助!如果有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值