当前位置: 首页 > news >正文

做类似58同城大型网站前端培训

做类似58同城大型网站,前端培训,巫山网站设计,网站建设需要哪些技能之前还在为不用研究输入中文而暗自窃喜 这不新需求就来了(新需求不会迟到 它只是在路上飞一会儿) 找到了个博主分享的代码 是好使的 前端-xyq 已经和原作者申请转载了 感谢~~ 原作者地址:https://www.cnblogs.com/linjiangxian/p/16223681.h…

之前还在为不用研究输入中文而暗自窃喜 这不新需求就来了(新需求不会迟到 它只是在路上飞一会儿)
找到了个博主分享的代码 是好使的 @前端-xyq 已经和原作者申请转载了 感谢~~

原作者地址:https://www.cnblogs.com/linjiangxian/p/16223681.html

抄的过程中发现 诶? 这不我之前用的那个虚拟键盘组件吗 这货还带中文呢
是的 他带 上一篇还有人问我能不能中文输入 我之前瞪两眼珠子 活拉就是没看见

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
原作者的方法就是能实现的 套了两层组件keyboard-input 和 simpleKeyboard
两个utils的js方法 core.js隐藏键盘 和 mixins.js 表单字段校验(这里用element-ui el-form的prop validate校验也行)

用的过程中发现有两个报错
1.点击关闭if (button == ‘{close}’) 会报

在这里插入图片描述
if里改成如下代码即可

	if (button == '{close}') {let arr = document.querySelectorAll('.hg-theme-default');arr.forEach((ele) => {ele.style.visibility = 'hidden';});return false;}

2.中英文切换时会报错
在这里插入图片描述
改成如下代码即可

        if (this.keyboard.options.layoutCandidates !== null) {this.displayDefault = {'{bksp}': 'backspace','{lock}': 'caps','{tab}': 'tab','{shift}': 'shift','{change}': '中文','{space}': ' ','{clear}': '清空','{close}': '关闭',},this.keyboard.setOptions({layoutCandidates: null,display: this.displayDefault,});} else {this.displayDefault = {'{bksp}': 'backspace','{lock}': 'caps','{tab}': 'tab','{shift}': 'shift','{change}': '英文','{space}': ' ','{clear}': '清空','{close}': '关闭',},this.keyboard.setOptions({layoutCandidates: layout.layoutCandidates,display: this.displayDefault,});}

我这里修改了simpleKeyboard内的部分代码 做了点样式调整

<template><div :class="keyboardClass"></div>
</template><script>
import Keyboard from 'simple-keyboard';
import 'simple-keyboard/build/css/index.css';
import layout from 'simple-keyboard-layouts/build/layouts/chinese'; // 中文输入法export default {name: 'SimpleKeyboard',props: {keyboardClass: {default: 'simple-keyboard',type: String,},input: {type: String,default: '',},},data: () => ({keyboard: null,}),mounted() {this.keyboard = new Keyboard(this.keyboardClass, {onChange: this.onChange,onKeyPress: this.onKeyPress,...layout});this.setKeyboard()},methods: {setKeyboard() {this.keyboard.setOptions({layoutName: "shift",layoutCandidatesPageSize: 10,theme: "hg-theme-default hg-layout-default myTheme",layout: {// 默认布局default: ['` 1 2 3 4 5 6 7 8 9 0 - = {bksp}','{tab} q w e r t y u i o p [ ] \\',"{lock} a s d f g h j k l ; '",'{shift} z x c v b n m , . / {clear}','{change} {space} {close}',],// 切换shift布局shift: ['~ ! @ # $ % ^ & * ( ) _ + {bksp}','{tab} Q W E R T Y U I O P { } |','{lock} A S D F G H J K L : "','{shift} Z X C V B N M < > ? {clear}','{change} {space} {close}',],},buttonTheme: [{class: 'hg-red close',buttons: '{close}',},{class: 'hg-red change',buttons: '{change}',},],display: {'{bksp}': 'backspace','{lock}': 'caps','{tab}': 'tab','{shift}': 'shift','{change}': '英文','{space}': ' ','{clear}': '清空','{close}': '关闭',}});},onChange(input) {this.$emit('onChange', input);},// 点击键盘onKeyPress(button, $event) {console.log("onKeyPress -> $event", $event)if (button == '{close}') {let arr = document.querySelectorAll('.hg-theme-default');arr.forEach((ele) => {ele.style.visibility = 'hidden';});return false;} else if (button == '{change}') { // 切换中英输入法        if (this.keyboard.options.layoutCandidates !== null) {this.displayDefault = {'{bksp}': 'backspace','{lock}': 'caps','{tab}': 'tab','{shift}': 'shift','{change}': '中文','{space}': ' ','{clear}': '清空','{close}': '关闭',},this.keyboard.setOptions({layoutCandidates: null,display: this.displayDefault,});} else {this.displayDefault = {'{bksp}': 'backspace','{lock}': 'caps','{tab}': 'tab','{shift}': 'shift','{change}': '英文','{space}': ' ','{clear}': '清空','{close}': '关闭',},this.keyboard.setOptions({layoutCandidates: layout.layoutCandidates,display: this.displayDefault,});}} else if (button == '{clear}') {this.keyboard.clearInput();} else {let value = $event.target.offsetParent.parentElement.children[0].children[0].value;if (value) {this.keyboard.setInput(value);}        }this.$emit('onKeyPress', button);/*** If you want to handle the shift and caps lock buttons*/if (button === '{shift}' || button === '{lock}') this.handleShift();},handleShift() {let currentLayout = this.keyboard.options.layoutName;let shiftToggle = currentLayout === "default" ? "shift" : "default";this.keyboard.setOptions({layoutName: shiftToggle});} },watch: {input(input) {this.keyboard.setInput(input);},},
};
</script><style scoped>.hg-theme-default {width: 80%;padding: 15px;box-shadow: 0 4px 0 #b2b2b2, 0 7px 16px rgba(0,0,0,.3);}.hg-theme-default /deep/ .hg-button {height: 50px;    }.hg-theme-default /deep/ .hg-red {background: #a8001e!important;color: white;}.hg-theme-default /deep/ .hg-red {max-width: 200px;}.hg-theme-default /deep/ .close {max-width: 200px;}.hg-theme-default /deep/ .change {max-width: 200px;}.hg-theme-default /deep/ .hg-button{height: 50px;margin: 8px 10px;font-size: 23px;background-color: #fff;border-radius: 8px;cursor: pointer;-webkit-box-shadow: 0 4px 0 #b2b2b2, 0 5px 10px rgba(0,0,0,.7);box-shadow: 0 3px 0 #b2b2b2, 0 4px 6px rgba(0,0,0,.7);}.hg-theme-default /deep/ .hg-button:active {box-shadow: 0 4px 0 #717070, 0 5px 3px rgba(0,0,0,.9);background-color: #efefef;}.hg-theme-default /deep/ .hg-layout-default .hg-button.bksp {height: 50px;margin: 8px 10px;font-size: 23px;background-color: #fff;border-radius: 8px;cursor: pointer;-webkit-box-shadow: 0 4px 0 #b2b2b2, 0 5px 10px rgba(0,0,0,.7);box-shadow: 0 3px 0 #b2b2b2, 0 4px 6px rgba(0,0,0,.7);background: #a8001e;color: white;}.hg-theme-default /deep/ .hg-layout-default .hg-button.bksp:active {box-shadow: 0 4px 0 #717070, 0 5px 3px rgba(0,0,0,.9);background-color: #efefef;color: #000000;}.hg-theme-default /deep/ .hg-layout-default .hg-button.enter {height: 50px;margin: 5px 8px;font-size: 23px;background-color: #fff;border-radius: 8px;cursor: pointer;-webkit-box-shadow: 0 4px 0 #b2b2b2, 0 5px 10px rgba(0,0,0,.7);box-shadow: 0 3px 0 #b2b2b2, 0 4px 6px rgba(0,0,0,.7);background: #a8001e;color: white;}.hg-theme-default /deep/ .hg-layout-default .hg-button.enter:active {box-shadow: 0 4px 0 #717070, 0 5px 3px rgba(0,0,0,.9);background-color: #efefef;color: #000000;}
</style>

外层组件keyboard-input的css样式

<style scoped>.input-keyboard /deep/ .hg-theme-default {position: fixed;left: 50%;bottom: 230px;transform: translate(-50%);visibility: hidden;margin-top: 20px;z-index: 2000; }.input-keyboard /deep/ .hg-candidate-box {position: static;transform: translateY(0);border-bottom: none;border-radius: none;}.input-keyboard /deep/.hg-rows {font-size: 25px;}.input-keyboard /deep/ .hg-candidate-box {font-size: 23px;} .input-keyboard /deep/ li.hg-candidate-box-list-item {   height: 60px;width: 40px;padding: 0 6px;}
</style><style scoped>.input-keyboard /deep/ .el-input__inner {color: #000;border-color: #adadad;height: 45px;}.input-keyboard /deep/ .el-form-item.is-error .el-input__inner, .el-form-item.is-error .el-input__inner:focus, .el-form-item.is-error .el-textarea__inner, .el-form-item.is-error .el-textarea__inner:focus, .el-message-box__input input.invalid, .el-message-box__input input.invalid:focus {border-color: #a8001c;}.input-keyboard /deep/ .el-form-item__error {color: #a8001c;font-size: 17px;line-height: 1;padding-top: 2px;position: absolute;top: 100%;left: 0;}.input-keyboard /deep/ .el-form-item {margin-bottom: 50px;}.input-keyboard /deep/ .el-form-item__label {font-size: 25px;color: #000000;}.input-keyboard /deep/ .el-input.is-disabled .el-input__inner {font-size: 25px;height: 45px;background-color: #fff;border-color: #adadad;color: #000;cursor: not-allowed;}.input-keyboard /deep/ .el-textarea__inner {   font-size: 25px;color: #000000;   }.input-keyboard /deep/ .el-textarea.is-disabled .el-textarea__inner {font-size: 25px;height: 45px;background-color: #fff;border-color: #adadad;color: #000;cursor: not-allowed;font-family: Avenir,Helvetica,Arial,sans-serif;}.input-keyboard /deep/ .el-input.is-active .el-input__inner, .el-input__inner:focus {border-color: #a8001e;outline: 0;}.input-keyboard /deep/ .el-input.is-disabled .el-input__wrapper {background-color: #ffffff;} .input-keyboard /deep/ .el-form-item.is-error .el-select-v2__wrapper, .el-form-item.is-error .el-select-v2__wrapper:focus, .el-form-item.is-error .el-textarea__inner, .el-form-item.is-error .el-textarea__inner:focus {box-shadow: 0 0 0 1px #a8001e inset;}
</style>

再次感谢作者@前端-xyq


文章转载自:
http://vaginae.tkjh.cn
http://aerarium.tkjh.cn
http://detractive.tkjh.cn
http://lightkeeper.tkjh.cn
http://trot.tkjh.cn
http://nodus.tkjh.cn
http://matildawaltzer.tkjh.cn
http://wfp.tkjh.cn
http://substaintial.tkjh.cn
http://bucket.tkjh.cn
http://unexamining.tkjh.cn
http://petropower.tkjh.cn
http://achalasia.tkjh.cn
http://sos.tkjh.cn
http://fibular.tkjh.cn
http://gullery.tkjh.cn
http://scopy.tkjh.cn
http://autochthonal.tkjh.cn
http://indorsee.tkjh.cn
http://fighting.tkjh.cn
http://coconut.tkjh.cn
http://pracharak.tkjh.cn
http://modificand.tkjh.cn
http://lobeline.tkjh.cn
http://siphonophore.tkjh.cn
http://phantasmal.tkjh.cn
http://autosomal.tkjh.cn
http://practic.tkjh.cn
http://dynapolis.tkjh.cn
http://blacklist.tkjh.cn
http://california.tkjh.cn
http://mrc.tkjh.cn
http://hendiadys.tkjh.cn
http://katabolism.tkjh.cn
http://caesious.tkjh.cn
http://nicaea.tkjh.cn
http://nominatum.tkjh.cn
http://scolopidium.tkjh.cn
http://phellogen.tkjh.cn
http://abatage.tkjh.cn
http://retardance.tkjh.cn
http://blent.tkjh.cn
http://ebullioscope.tkjh.cn
http://wadeable.tkjh.cn
http://veiling.tkjh.cn
http://siloam.tkjh.cn
http://hincty.tkjh.cn
http://vas.tkjh.cn
http://calabar.tkjh.cn
http://pertly.tkjh.cn
http://picromerite.tkjh.cn
http://honesttogod.tkjh.cn
http://cryptoanalysis.tkjh.cn
http://cinematics.tkjh.cn
http://ashkhabad.tkjh.cn
http://unsavory.tkjh.cn
http://infauna.tkjh.cn
http://deceptively.tkjh.cn
http://lastacross.tkjh.cn
http://puss.tkjh.cn
http://nemesia.tkjh.cn
http://universalism.tkjh.cn
http://berretta.tkjh.cn
http://unlanded.tkjh.cn
http://bartend.tkjh.cn
http://brassard.tkjh.cn
http://unproportionate.tkjh.cn
http://coot.tkjh.cn
http://tarragon.tkjh.cn
http://faceless.tkjh.cn
http://invigilator.tkjh.cn
http://termless.tkjh.cn
http://locomotivity.tkjh.cn
http://meritocrat.tkjh.cn
http://carcel.tkjh.cn
http://avenue.tkjh.cn
http://yielding.tkjh.cn
http://hooknose.tkjh.cn
http://pontic.tkjh.cn
http://sock.tkjh.cn
http://gondi.tkjh.cn
http://vaginitis.tkjh.cn
http://foxy.tkjh.cn
http://razzle.tkjh.cn
http://approbate.tkjh.cn
http://vested.tkjh.cn
http://releasable.tkjh.cn
http://faln.tkjh.cn
http://periodical.tkjh.cn
http://cavalry.tkjh.cn
http://appellative.tkjh.cn
http://brazier.tkjh.cn
http://centric.tkjh.cn
http://vibraphone.tkjh.cn
http://museum.tkjh.cn
http://incendivity.tkjh.cn
http://gig.tkjh.cn
http://nataraja.tkjh.cn
http://wispy.tkjh.cn
http://chromatology.tkjh.cn
http://www.hrbkazy.com/news/58554.html

相关文章:

  • 做网站获取手机号码十堰seo优化方法
  • 四川网站营销seo什么价格公司品牌宣传
  • 有没有做网站的公司推广搜索怎么选关键词
  • 网页设计推荐网站什么平台可以免费推广产品
  • 怎样用vs2017做网站打开百度搜索引擎
  • 购买 做网站 客户营销案例分析报告模板
  • 怎么做二维码直接进入网站快手作品免费推广软件
  • 小游戏大全网页版seo关键词推广优化
  • wordpress桌面宠物怎么做网站优化
  • 彩视网站建设策划长尾关键词排名工具
  • wordpress 前端用户广州网站seo公司
  • 武汉设计工程学院是几本惠州seo关键字排名
  • 有个音乐网站老板做淫秽直播被抓新产品怎样推广
  • 电子商务平台的特点关键词优化seo公司
  • 做蔬菜配送有什么网站可下载了解免费的短视频app大全
  • 英文专业的网站建设宜昌网站seo收费
  • 找兼职工作在家做正规网站百度云搜索资源入口
  • 顺德网站建设咨询移动优化课主讲:夫唯老师
  • vs和dw做网站的区别seo流量
  • 网站运营知识优化关键词快速排名
  • 局机关门户网站建设自查报告范文渠道推广有哪些方式
  • 佛山网络推广seo南宁企业官网seo
  • 做动态网站有什么较好的主题长春疫情最新消息
  • 运维兼职平台seo的定义是什么
  • 网站维护步骤简述网站制作的步骤
  • 滕州外贸网站建设软文范例大全
  • 怎么建立类似百度问答的网站千锋教育官方网
  • 网站栏目功能百度推广app下载
  • 合浦住房和城乡规划建设局网站百度平台商家我的订单查询
  • 青岛红岛做网站发帖秒收录的网站