IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue+vant实现自定义键盘样式 -> 正文阅读

[JavaScript知识库]vue+vant实现自定义键盘样式

最终效果如下面所示

代码部分

<!-- 英文 数字 键盘 -->
<div class="allBoard">
  <van-popup
       v-model="show_allBoard"
       position="bottom"
       :overlay="false"
        overlay-class="displayNone"
  >
    <div class="plate_number_box">
       <!-- 点击对应的字母或数字,进行输入 -->
       <van-button
          size="small"
          v-for="(item, index) in English_Number"
          :key="item.id"
          @click="checkEnglish_num(index)"
          >{{ item.name }}</van-button
        >
          <!-- <div class="close-box" @click.stop="close_keyboard">
            <div>╳</div>
            <li></li>
          </div> -->
     </div>
   </van-popup>
</div>                               
data() {
  return {
      loginForm: {
        code: "",
      },
      show_allBoard: true, //是否显示英文数字键盘
      English_Number: [
        { name: "1", id: 28 },
        { name: "2", id: 29 },
        { name: "3", id: 30 },
        { name: "4", id: 31 },
        { name: "5", id: 32 },
        { name: "6", id: 33 },
        { name: "7", id: 34 },
        { name: "8", id: 35 },
        { name: "9", id: 36 },
        { name: "0", id: 37 },
        { name: "删除", id: 99 },
        { name: "Q", id: 38 },
        { name: "W", id: 39 },
        { name: "E", id: 40 },
        { name: "R", id: 41 },
        { name: "T", id: 42 },
        { name: "Y", id: 43 },
        { name: "U", id: 44 },
        { name: "I", id: 45 },
        { name: "O", id: 46 },
        { name: "P", id: 47 },
        { name: "A", id: 48 },
        { name: "S", id: 49 },
        { name: "D", id: 50 },
        { name: "F", id: 51 },
        { name: "G", id: 52 },
        { name: "H", id: 53 },
        { name: "J", id: 54 },
        { name: "K", id: 55 },
        { name: "L", id: 56 },
        { name: "Z", id: 57 },
        { name: "X", id: 58 },
        { name: "C", id: 59 },
        { name: "V", id: 60 },
        { name: "B", id: 61 },
        { name: "N", id: 62 },
        { name: "M", id: 63 },
        { name: "确认", id: 100 },
      ],
      numArr: [],
    };
  },
methods:{
    // 虚拟键盘
    checkEnglish_num(index) {
      // 如果点击删除键,删除 numArr 的最后一个值
      if (this.English_Number[index].id == 99) {
        //删除
        this.numArr.pop();
        this.loginForm.code = this.numArr.toString().replace(/,/g, "");
        // // 如果 numArr 里面被删的没有值了,切换键盘
        // if (this.numArr.length == 0) {
        //   this.show_allBoard = false;
        // }
      } else if (this.English_Number[index].id == 100) {
        //确定
        //this.submit();
      } else {
        // 把选中的值 push 到 numArr 内
        this.numArr.push(this.English_Number[index].name);
        // // 如果 numArr 中的值超过 7 个(车牌号的最大位数),删除最后一个
        // if (this.numArr.length > 7) {
        //   this.numArr.pop();
        // }
        this.loginForm.code = this.numArr.toString().replace(/,/g, "");
      }
    },
    // 关闭虚拟键盘
    close_keyboard() {
      this.show_allBoard = false;
    },
    submit() {
      // 键盘最后输入值
      if (this.loginForm.code == "") {
        handleMessage("输入内容不能为空!");
        return;
      }
      console.log(this.loginForm.code)
    },
}
.allBoard {
  .van-popup {
    @extend .overflow-y;
  }
  .plate_number_box {
    width: 100%;
    @extend .class-plate-box;
    .close-box {
      @extend .class-close-box;
      div {
        @extend .class-close-box-div;
      }
      li {
        @extend .class-close-box-li;
      }
    }
    .van-button--small {
      width: 8.8%;
      height: 2rem;
      @extend .class-van-button-small;
    }
    .van-button--small:nth-child(1) {
      margin-bottom: 5px;
    }
    .van-button--small:nth-child(12) {
      margin-left: 5%;
    }
    .van-button--small:nth-child(22) {
      margin-left: 9%;
    }
    .van-button--small:nth-child(31) {
      margin-left: 11.5%;
    }
    .van-button--small:last-child {
      width: 13%;
    }
  }
}
.displayNone {
  display: none !important;
}

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 23:16:14  更:2022-04-01 23:20:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:20:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码