vue+element+iframe+ipad 项目遇到的一些bug

公司项目用vue+Element ui 开发 , pc端一直开发的好好的 本来没什么问题 但是最近老板发话要兼容ipad 调bug调到 爆炸

1.嵌入iframe里面 ipad上页面划不动问题
页面卡顿原因大概是异步加载数据append到body的,ipad上body没形成滚动条 。解决办法:

html,body,#app{
    height: 100%;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}
  1. 加入上面的样式之后,页面上所有的弹出层,点开之后都出现了遮罩层在上面 内容在下面的情况 然后 把#app去掉就可以了 原因:未知
html,body{
	 height: 100%;
	 overflow: auto;
	 -webkit-overflow-scrolling: touch;
}
  1. -webkit-overflow-scrolling: touch; 这个属性 本来是ipad上用来滚动回弹 滑动起来更流畅设置的
    然后。。bug来了 页面过长的时候 点击某个操作后 整个页面会空白 然后我把这个属性去掉就可以了 但是滑动起来又没有了流畅的效果 在想解决办法

4.fixed定位在ipad上不起作用
5.iframe设置高度在ipad上不起作用 默认会把内容撑开
6.element自带的Popover 在pc端的hover在ipad上变成了click 产品要求点击其他地方消失 自己写了个指令

/**Popover  ipad兼容问题 */
Vue.directive('disnone', function (el) {
    el.addEventListener('click',function(event){
        event.stopPropagation();
        let list = document.getElementsByClassName('el-popover');
        for(let i = 0; i < list.length; i++){
            if(list[i].style.display == 'block'){
                list[i].style.display = 'none'
            }
        }
    })
});

7.如果元素设置了定位 加入一个弹出层设置了absoute定位 那么ipad上面input 元素聚焦的时候 滑动弹出层 光标也会随着滑动 解决办法:写个指令 让滑动的时候失焦

/**会员消费  滑动页面光标问题 */
Vue.directive('blur', function (el) {
    el.addEventListener('touchmove',function(event){
        let moneyInput = document.getElementById('moneyInput');
        let numberInput = document.getElementById('numberInput');
        if(moneyInput){
            moneyInput.blur()
        }
        if(numberInput){
            numberInput.blur;
        }
    })
});

8.element form表单 只有一个表单元素的时候 回车就会刷新页面,解决办法:
a. el-from 加上 @submit.native.prevent
b. 加入一个空的input <el-input style="display:none"></el-input>
原因:当一个 form 元素中只有一个输入框时,在该输入框中按下回车应提交该表单。如果希望阻止这一默认行为,可以在 标签上添加 @submit.native.prevent。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue + ElementUI 是一个用于构建后台管理系统的前端项目。它结合了Vue框架和ElementUI组件库,提供了丰富的UI组件和开发工具,使开发者能够快速构建出美观、易用的后台管理界面。\[1\] 在开始使用Vue + ElementUI项目之前,你需要先安装ElementUI。你可以通过在项目路径下的终端输入以下命令来安装ElementUI:npm i element-ui -S。然后,在项目的main.js文件,通过import导入ElementUI,并使用Vue.use(ElementUI)来全局使用ElementUI组件。如果你只想按需引入某个组件,你可以使用import {ComponentName} from 'element-ui'来导入指定的组件,然后使用Vue.use(ComponentName)来使用该组件。\[2\] 在Vue + ElementUI项目,你可以使用computed属性来定义一个函数来渲染组件。例如,你可以在computed定义一个名为noChildren的函数,用于过滤出没有子级的一级菜单。然后,你可以使用v-for指令来遍历过滤出来的一级菜单,并在相应位置进行呈现。例如,你可以使用<el-menu-item>来呈现每个一级菜单项,并使用相应的数据来设置index、key、图标和标题等属性。\[3\] 总结起来,Vue + ElementUI是一个用于构建后台管理系统的前端项目,它结合了Vue框架和ElementUI组件库。你可以通过安装ElementUI并在项目使用它的组件来构建出美观、易用的后台管理界面。在渲染组件方面,你可以使用computed属性来定义函数来过滤和呈现数据。 #### 引用[.reference_title] - *1* *2* *3* [Vue + Element-UI —— 项目实战(一)](https://blog.csdn.net/qq_45902692/article/details/125079634)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值