vue 监听手机键盘是否弹出及input是否聚焦成功
//定义移动端类型
function pageStats() {
let u = navigator.userAgent,
app = navigator.appVersion;
let obj = {};
obj.isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器
obj.isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
return obj;
}
//监听手机键盘是否弹出
function keyboard(res,size) {
let deviceType = pageStats();
if (deviceType.isiOS) {
setTimeout(function () {
let aaa = document.body.scrollTop;
console.log(aaa);
console.log(size.scrollTop);
if (aaa !== size.scrollTop) {
} else {
//ios端弹出失败回调
}, msg => {
});
}
console.log(aaa !== size.scrollTop); //true 键盘弹出成功
}, 1000)
}
if (deviceType.isAndroid) {
setTimeout(function () {
let bbb = document.body.clientHeight;
console.log(bbb);
console.log(size.windowHeight);
if (bbb !== size.windowHeight) {
} else {
//安卓端弹出失败回调
}, msg => {
});
}
console.log(bbb !== size.windowHeight); //true 键盘弹出成功
}, 1000)
}
}
//手机号输入框获取焦点是否成功
export function clickInput(res) {
let size = {
windowHeight: res.windowHeight,
scrollTop: res.scrollTop
};
res.hasFocus = document.hasFocus() && document.activeElement === res.$refs.phone;
if (res.hasFocus) {
console.log('input聚焦成功');
keyboard(res,size); //键盘是否弹出
} else { //TODO
//聚焦失败回调
console.log('input聚焦失败');
}
}
//写入一个js文件 在组件中引用并传值
例:
<input type="tel" ref="phone" @click="clickInput"/>
<script>
import {clickInput} from '../../assets/js/js文件名'; export default {
data() {
return {
deviceType: null,
scrollTop: 0,
windowHeight: 0
}
},
methods: {
clickInput(){
clickInput(this)
},
getSize () {//TODO 原生JS获取
this.scrollTop = document.body.scrollTop;//document.body.scrollTop() jquery;//用于ios键盘监听
this.windowHeight = document.body.clientHeight;//document.window.offsetHeight() jquery ;//用于Android键盘监听
}, }, mounted() {
this.getSize();
},
}
vue 监听手机键盘是否弹出及input是否聚焦成功的更多相关文章
- Android 另类方法监听软键盘的弹出收起事件
http://www.cnblogs.com/csonezp/p/5065624.html 最近做的项目碰到个问题,a界面是fragment+recyclerview,b界面带个edittext,并且 ...
- c# 获取移动硬盘信息、监听移动设备的弹出与插入事件
原文 http://www.cnblogs.com/coolkiss/p/3328825.html 备忘一下改功能,主要通过WMI来实现,对于监听外接设备的弹出和插入事件一开始使用IntPtr Wnd ...
- Android监听自身卸载,弹出用户反馈调查
1,情景分析 在上上篇博客中我写了一下NDK开发实践项目,使用开源的LAME库转码MP3,作为前面几篇基础博客的加深理解使用的,但是这样的项目用处不大,除了练练NDK功底.这篇博客,我将讲述一下一个各 ...
- Android 应用监听自身卸载,弹出用户反馈调查
监听卸载情景和原理分析 1,情景分析 在上上篇博客中我写了一下NDK开发实践项目,使用开源的LAME库转码MP3,作为前面几篇基础博客的加深理解使用的,但是这样的项目用处不大,除了练练NDK功底.这篇 ...
- Android 如何监听返回键,弹出一个退出对话框
android 如何监听返回键点击事件,并创建一个退出对话框, 防止自己写的应用程序不小心点击退出键而直接退出.自己记录下这个简单的demo,备用. public class BackKeyTest ...
- [转]Android 如何监听返回键,弹出一个退出对话框
本文转自:http://blog.csdn.net/sunnyfans/article/details/8094349 Android 如何监听返回键点击事件,并创建一个退出对话框, 防止自己写的应用 ...
- Flex里监听mouseDownOutside事件解决弹出窗口点击空白关闭功能
其实当用户在使用 PopUpManager 打开的某个组件外部单击时,会从该组件分派一个mouseDownOutside事件 监听该事件就能实现点击空白处关闭窗口的功能 this.addEventLi ...
- e807. 设置进程监听对话框的延迟弹出
By default, the progress monitor delays for a short period before it is displayed. There are two pro ...
- 使用Picker的时候,让input输入框使用焦点,手机键盘不弹出
$("#address").click(function(){ document.activeElement.blur(); })
随机推荐
- test--2
$(function () { if (isLogined && !c_has_follwed) { $.ajax({ url: "/mvc/Follow/Fol ...
- windows下Go升级及GoLand的安装激活
之前在qor/China上问golang项目包有没有一键安装,有位朋友给出了回复: 于是,尝试了下升级Go,目前版本是1.10.1,现升级为为1.12.2.步骤如下: 一.下载安装包 下载地址:htt ...
- vue and jest测试
测试Vue的filters方法: 局部: import Page from '../src/Page' it('filter', () => { const case = Page.filter ...
- Java集合类(转自hey平平)
一.集合与数组 数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用. ...
- spring 中IOC实验(一)
软件151 王帅 1.三个类,Human(人类)是接口,Chinese(中国人)是一个子类,American(美国人)是另外一个子类. 代码如下: package cn.com.chengang.s ...
- validation-api各注解的用法
入参用@Valid,要不下面实体类中的注解不生效 @AssertFalse 被注解的元素必须为false@AssertTrue 被注解的元素必须为True@DecimalMax(value) 被注解的 ...
- 【webpack学习笔记】a07-代码分离
官方文档说进行代码分离有三种方法: 入口起点:使用entry配置手动分离. 防止重复:使用CommonsChunkPlugin插件去重合分离chunk 注:在webpack4中,CommonsChun ...
- 最小生成树 HDU1301 (kuskal & prim)
Kruskal:1.边排序,2.按边从小到大连接森林至树 3.并查集 #include <stdio.h> #include <stdlib.h> #include < ...
- Quartz 2.2 动态添加、修改和删除定时任务
QuartzManager.Java 动态添加.修改和删除定时任务管理类 import org.quartz.CronScheduleBuilder; import org.quartz.CronTr ...
- 获取百度地图POI数据二(准备搜索关键词)
上篇讲到 想要获取尽可能多的POI数据 需要准备尽可能多的搜索关键字 那么这些关键字如何得来呢? 本人使用的方法是通过一些网站来获取这些关键词 http://poi.mapbar.com ...