【前端】vant组件移动端兼容性问题汇总

记录使用vant组件开发过程中遇到的兼容性问题

一、【van-calendar】van-calendar初始化空白

  • 问题截图:Alt
  • 解决方法:
    模拟滚动触发日历组件的加载,在van-calendar上绑定@open="openCalendar"事件
openCalendar () {
  // 解决bug 部分机型刚打开白屏,滑动后才可
  this.$nextTick(() => {
    const dom = document.querySelector('.van-calendar__body')
    if (dom) {
      let back = dom.scrollTop
      // 模拟滑动,避免白屏
      setTimeout(() => {
        back = dom.scrollTop
        dom.scrollTop = back - 4
        console.log('scroll-start', back)
      }, 10)
      setTimeout(() => {
        dom.scrollTop = back
        console.log('scroll-end')
      }, 100)
    }
})

参考来源:vant 日历插件,部分全面屏手机显示不出来

二、【van-popup】IOS上popup重叠

  • 解决方法:
    更改挂载节点,在van-popup上加get-container=“body”

参考来源:vant兼容问题之van-popup组件在ios上出现重叠问题

三、【van-uploader】IOS和安卓兼容相机和文件上传

当accept="image/*”时,IOS文件选择时文件置灰无法选择;
当accept=“”时,安卓上无法选择拍照上传。

  • 问题截图:Alt
  • 解决方法:
    判断当前系统,分情况对accept赋值
            let ua = navigator.userAgent.toLowerCase();
            if(ua.indexOf('iphone') != -1){
                return ''
            }else{
                return 'image/*'
            }

效果截图:
请添加图片描述

四、【van-datetime-picker】IOS上时间显示NaN

  • 解决方法:
    如果你遇到了在 iOS 上无法渲染组件的问题,请确认在创建 Date 对象时没有使用new Date(‘2020-01-01’)这样的写法,iOS 不支持以中划线分隔的日期格式,正确写法是new Date(‘2020/01/01’)。

参考来源:DatetimePicker 时间选择

持续更新中……

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值