0.1.4 • Published 1 year ago

keyboard-next v0.1.4

Weekly downloads
-
License
-
Repository
-
Last release
1 year ago

keyBoard base on Vue3 , support hand write.

Other versions

They have the same function as the Vue3 version

Overview

关于

特性 🎉

  • 支持多达五种键盘模式
  • 支持自定义主题色
  • 已集成丰富的中文字库
  • 支持急速识别的手写能力
  • vue3.0 组件开箱即用

支持环境

EdgeFirefoxChromeSafariOpera
Edgelast 2 versionslast 2 versionslast 2 versionslast 2 versions

安装

使用 npm 或 yarn 安装

$ npm install vue-keyboard-virtual-next --save
$ yarn add vue-keyboard-virtual-next --save

如果你的网络环境不佳,推荐使用 cnpm

使用

全局引入

import App from "./app.vue";
import { createApp } from "vue";
import "vue-keyboard-virtual-next/keyboard.min.css";
import KeyBoard from "vue-keyboard-virtual-next";

createApp(App)
  .use(keyBoard)
  .mount("#app");

局部引入

<template>
  <!-- keyboard 只识别带有 data-mode 标识的输入框 -->
  <input data-mode value="hello" />
  <KeyBoard @change='change'/>
</template>

<script lang="ts">
import "keyboard-virtual-vue/keyboard.min.css";
import KeyBoard from "keyboard-virtual-vue";
import { defineComponent } from "vue";
export default defineComponent({
  components: { KeyBoard },
  setup() {
    // 第一个参数为当前focus的输入框的value值变化
    // 第二个参数为当前foucs的输入框
    function change(value, inputEl) {
      console.log('change value ---->', value)
      console.log('change input dom ---->', inputEl)
    }

    return {
      change
    };
  },
});
</script>

配置参数

Input标签属性

属性说明类型可选值默认值
data-mode弹出输入法的类型:en 英文小写number数字symbol 标点handwrite 手写 不传 默认中文Stringennumbersymbolhandwritedefault as *
data-prop注册的输入框的类型String*

Props属性

参数说明默认值类型是否必须版本
v-model绑定的输入框value,可同时双向绑定多个输入框,不传则只与当前focus输入框做数据绑定关系v1.0.4+废弃
color主题色#eaa050stringv1.0.0+
modeList键盘渲染模式列表,若不传handApi则不会出现手写板"handwrite", "symbol"string[]v1.0.0+
blurHide是否当前输入框blur事件触发隐藏truebooleanv1.0.0+
showHandleBar是否显示拖拽句柄truebooleanv1.0.0+
dargHandleText拖拽句柄提示文字stringv1.0.0+
modal是否显示遮罩层falsebooleanv1.0.0+
closeOnClickModal是否点击遮罩层隐藏键盘truebooleanv1.0.0+
handApi手写识别接口,若不传则无法切换手写模块stringv1.0.0+
animateClass键盘显隐动画,内置slide动画,如若需要其他动画,可传入相应类名自定义动画stringv1.0.0+

Events

参数说明类型版本
keyChange按键触发事件,第一个参数为当前触发的按键的标识,第二个参数为当前聚焦输入框的props值,若没有则直接返回当前聚焦的input元素(v1.0.1版本之后)(value: string,prop:string|HTMLInputElement) => voidv1.0.0+
changevalue改变事件,第一个参数为当前最新通过键盘输入的值,第二个参数为当前聚焦输入框的props值,若没有则直接返回当前聚焦的input元素(v1.0.1版本之后)(value: string,prop:string|HTMLInputElement) => voidv1.0.0+
closed键盘关闭事件() => voidv1.0.0+
modalClick遮罩点击事件() => voidv1.0.0+

Component Event

方法名说明类型版本
reSignUp重新给input注册绑定键盘,当页面有新的input标签出现时调用此方法()=> voidv1.0.0+
getCurrentInput获取当前聚焦的输入框()=> HTMLInputElement | HTMLTextAreaElementv1.0.2+
<template>
  <!-- keyboard 只识别带有 data-mode 标识的输入框 -->
  <input data-mode :value="你好" />
  <KeyBoard ref="keyBoardRef" @change="change"/>
</template>

<script lang="ts">
import "vue-keyboard-virtual-next/keyboard.min.css";
import KeyBoard from "vue-keyboard-virtual-next";
import { defineComponent, ref, onMounted } from "vue";
export default defineComponent({
  components: { KeyBoard },
  setup() {
    const keyBoardRef = ref<typeof KeyBoard | null>(null);
      
    onMounted(() => {
        // xxxx逻辑 给键盘重新注册输入框
        keyBoardRef.value?.reSignUp();
    })

    // 第一个参数为当前focus的输入框的value值变化
    // 第二个参数为当前foucs的输入框
    function change(value, inputEl) {
      console.log('change value ---->', value)
      console.log('change input dom ---->', inputEl)
    }
 
    return {
      change,
      keyBoardRef
    };
  },
});
</script>

其他说明

  • 有问题欢迎提交 Issue。
  • 本项目为作者一人维护,精力有限,有限解决重大 bug,望理解。
  • 用于生产环境,请使用 release 版本代码
  • 暂只支持vue3版本引入