H5移动端页面加入canvas可滑动代码条件下android手机点击input重复弹出键盘

Posted jlfw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了H5移动端页面加入canvas可滑动代码条件下android手机点击input重复弹出键盘相关的知识,希望对你有一定的参考价值。

在移动端页面使用canvas的动画,为了实现动画的触摸滑动,会加入createjs.Touch.enable(stage, true, false)这条语句,但加入这条语句后,页面的inputclick等可点击事件都会失效,所以会用触摸事件来实现相关功能,如下:

$(‘#button‘).on(‘touchstart‘, function() {
    window.location.href = ‘xx.html‘
})

触摸事件控制焦点的获取来使input键盘弹出:

$(‘#input‘).on(‘touchstart‘, function() {
    $(this).focus()
})

然而苹果手机键盘关闭后input焦点自动失去,再次点击键盘弹出无异常,安卓手机键盘关闭input还是获取焦点状态,故键盘无法重复弹出。本想在关闭键盘的事件上加个失去焦点的行为,但查过资料无法找到这个事件,所以另辟奇径,找到了另一种办法:每次点击input都会删除原来的input并且生成新的input放在这里,这样新的input又可以获取焦点并弹出键盘了,实现代码如下:

html代码:

<button id="btn"></button>
<div class="box">
    <input type="text" maxlength="4" id="hengpi"/>
</div>

js代码:

$(‘#btn‘).on(‘touchstart‘, function() {
    var value = $(‘input‘).val()
    $(‘input‘).remove()
    $(‘.box‘).html(‘<input type="text"/>‘)
    if(value!=‘‘){
        $(‘input‘).val(value)
    }
    $(‘input‘).focus()
})

以上是关于H5移动端页面加入canvas可滑动代码条件下android手机点击input重复弹出键盘的主要内容,如果未能解决你的问题,请参考以下文章

H5移动端禁止页面左右滑动

移动端触屏 也就H5页面 左右滑动 返回上一页?

移动端Touch事件与H5-Canvas像素点检测实现刮刮乐

h5页面实现可滑动刻度尺

移动端h5禁用浏览器左滑右滑的前进后退功能

移动端开发HTML5(H5)采用SwiperJS单屏垂直滑动页面中,某页内容高度超出屏幕高度解决办法