微信浏览器input常见问题

摘要:
微信中input引起的一些常见问题一、ios端兼容input光标高度input输入框光标,在安卓手机上显示没有问题,但是在苹果手机上当点击输入的时候,光标的高度和父盒子的高度一样。

微信中 input 引起的一些常见问题

一、ios端兼容input光标高度

input输入框光标,在安卓手机上显示没有问题,但是在苹果手机上 当点击输入的时候,光标的高度和父盒子的高度一样。

原因:

通常我们习惯用height属性设置行间的高度和line-height属性设置行间的距离(行高),当点击输入的时候,光标的高度就自动和父盒子的高度一样了。(谷歌浏览器的设计原则,还有一种可能就是当没有内容的时候光标的高度等于input的line-height的值,当有内容时,光标从input的顶端到文字的底部

解决方法:

高度height和行高line-height内容用padding撑开

二、ios端上下滑动时卡顿,页面缺失

在ios端,上下滑动页面时,如果页面高度超出了一屏,就会出现明显的卡顿,页面有部分内容显示不全的情况,例如下图,右图是正常页面,边是ios上下滑动后,卡顿导致如左图下面部分丢失。

原因:

笼统说微信浏览器的内核,Android上面是使用自带的WebKit内核,iOS里面由于苹果的原因,使用了自带的Safari内核,Safari对于overflow-scrolling用了原生控件来实现。对于有-webkit-overflow-scrolling的网页,会创建一个UIScrollView,提供子layer给渲染模块使用。

解决方法:

只需要在公共样式加入下面这行代码

*{ -webkit-overflow-scrolling: touch;}

三、ios键盘唤起后收起页面不归位

输入内容,软键盘弹出,页面内容整体上移,但是键盘收起,页面内容不下滑

原因:固定定位的元素 在元素内 input 框聚焦的时候 弹出的软键盘占位 失去焦点的时候软键盘消失 但是还是占位的 导致input框不能再次输入 在失去焦点的时候给一个事件

解决方法:

<input @blur.prevent="changeBlur()" />   //input标签中加上以下代码:
changeBlur(){ 
let u = navigator.userAgent,
 app = navigator.appVersion;
 let isIOS = !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/);
 if(isIOS){
 setTimeout(() => { const scrollHeight = document.documentElement.scrollTop || document.body.scrollTop || 0 window.scrollTo(0, Math.max(scrollHeight - 1, 0))
 },
 200) } }

四、安卓弹出的键盘遮盖到文本框

解决方法:

给input和textarea标签添加focus事件,如下,先判断是不是安卓手机下的操作,当然,可以不用判断机型,Document 对象属性和方法,setTimeout延时0.5秒,因为调用安卓键盘有一点迟钝,导致如果不延时处理的话,滚动就失效了

<input @focus="changefocus()"  />   //input标签中加上以下代码:
changefocus(){
  let u = navigator.userAgent, app = navigator.appVersion;
  let isAndroid = u.indexOf(‘Android‘) > -1 || u.indexOf(‘Linux‘) > -1;
  if(isAndroid){
    setTimeout(function() {
      document.activeElement.scrollIntoViewIfNeeded();
      document.activeElement.scrollIntoView();
    }, 500);       
  }
}

免责声明:文章转载自《微信浏览器input常见问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MySQL备份,使用xtrabackup备份全实例数据时,会造成锁等待吗?那么如果使用mysqldump进行备份呢?Hi3518_SDK下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

怎么恢复win8的开始菜单

Win8迷:Windows 8已经取消了经典的开始菜单取代的是Metro界面,关于取消“开始菜单”的争议声就没有停止过,微软不会打算把“开始菜单”回归了,这让很多用户不能习惯,例如:关机按钮都找不到。一些用户可能会因没了“开始菜单”而放弃Windows 8?但这不要紧,因为不少开发人员自己动手开发了“开始菜单”软件,帮助用户在Windows 8上使用熟悉的开...

composer 安装laravel

1、简介 Laravel是一套简洁,优雅的PHP WEB开发框架(PHP Web Framework)。 laravel是目前一个比较主流的框架,现在很多互联网的公司基本都在使用该框架。该框架是基于symfony【国外一款非常流行的框架:由于国内手册不是很齐全,没有多少公司使用】的一个国外的MVC框架。诞生于2011年6月11日。 官网:https://l...

radio,check美化

单选框与复选框原生控件美化有多种解决方案,现在采用经典的input+label的方式自己实现一种 思路: input和label通过id和for属性关联,点击label时,input选中状态改变 透明化input,并且绝对定位,脱离文档流,不影响label空间占用 label包含一个b元素用于模拟单选和复选的框框 使用b元素的伪类,"画出"单选和复选的勾和...

用组策略彻底禁止USB存储设备、光驱、软驱、ZIP软驱

转自:http://beyondhdf.blog.51cto.com/229452/131678 一、禁止USB存储设备、光驱、软驱、ZIP软驱 在现在企业网络环境下,由于企业网络越来越大环境越来越复杂。公司内员工素质参差不齐,公司为了加强网络安全性、数据保密性提出要封堵USB存储设备、光驱、软驱、ZIP软驱设备。首先我们在企业网络环境要想实现以上目的,必...

Android 目前最稳定和高效的UI适配方案

Android系统发布十多年以来,关于Android的UI的适配一直是开发环节中最重要的问题,但是我看到还是有很多小伙伴对Android适配方案不了解。刚好,近期准备对糗事百科Android客户端设计一套UI尺寸适配方案,可以和小伙伴们详细的聊一聊这个问题。 Android适配最核心的问题有两个,其一,就是适配的效率,即把设计图转化为App界面的过程是...

推荐开源的日程管理软件---Vcalendar

    最近项目中要用到日程管的功能,所以上网搜了一些资料以参考,发现了一个挺好的开源项目--Vcalendar, 该项目可以提供常用的日程管理功能,比如日程的crud操作,以及按年、月、周、日等方式查看日程等,感兴趣的 朋友,可以从http://www.ultraapps.com/app_overview.php?app_id=19查看livedemo....