diff --git a/README.md b/README.md index a264a769..7977c8a5 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ Shuang | 双拼练习 ---- -v5.13 2021.1.26 更新 +v5.14 2021.1.26 更新 ### 许可 @@ -45,7 +45,7 @@ v5.13 2021.1.26 更新 5. 多平台适配: - > 手机上使用:请切换至系统自带英文键盘以获得最佳输入体验,竖屏操作以获得最佳友好界面 + > 手机上使用:请切换至系统自带英文键盘以获得最佳输入体验,竖屏操作以获得最佳友好界面,支持键盘模拟 > > 电脑上使用:推荐使用 [Chrome 浏览器](https://www.google.cn/chrome),支持较高版本的 IE (不保证后续更新仍支持) @@ -58,6 +58,8 @@ v5.13 2021.1.26 更新 > 支持显示按键提示 > > 支持显示实时按键 + > + > 支持键盘模拟 ### 添加自定义双拼方案 diff --git a/build/app.min.js b/build/app.min.js index 88d4d9ba..3f1ebac8 100644 --- a/build/app.min.js +++ b/build/app.min.js @@ -1 +1 @@ -"use strict";function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArray(a){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(a))return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _createForOfIteratorHelper(a,b){var c;if("undefined"==typeof Symbol||null==a[Symbol.iterator]){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function e(a){throw a},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=a[Symbol.iterator]()},n:function n(){var a=c.next();return g=a.done,a},e:function e(a){h=!0,f=a},f:function f(){try{g||null==c["return"]||c["return"]()}finally{if(h)throw f}}}}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;da.length)&&(b=a.length);for(var c=0,d=Array(b);c$("body").scrollWidth){var a=310===$("body").scrollWidth?310:$("#pic").scrollWidth,b=1874/1928*a/680;navigator&&navigator.userAgent&&/firefox/i.test(navigator.userAgent)?($("#keys").style.transform="scale(".concat(b,")"),$("#keys").style.transformOrigin="left top",$("#keys").style.margin="".concat(10*b,"px"),$("#pic-placeholder").style.height="".concat(300*(a/680),"px")):($("#keys").style.marginLeft="10px",$("#keys").style.zoom=b,$("#pic-placeholder").style.zoom=b)}else navigator&&navigator.userAgent&&/firefox/i.test(navigator.userAgent)?($("#keys").style.transform="unset",$("#keys").style.transformOrigin="unset",$("#pic-placeholder").style.height="300px",$("#keys").style.margin="10px auto"):($("#keys").style.marginLeft="auto",$("#keys").style.zoom="unset",$("#pic-placeholder").style.zoom="unset")},updatePressedKeyHint:function updatePressedKeyHint(a){if("false"!==this.config.showPressedKey&&a){var b,c=$$(".key"),d=_createForOfIteratorHelper(c);try{for(d.s();!(b=d.n()).done;){var f=b.value;f.classList.remove("pressed")}}catch(a){d.e(a)}finally{d.f()}var e="qwertyuiopasdfghjkl;zxcvbnm".indexOf(a.toLowerCase());-1===e||(c[e].classList.add("pressed"),setTimeout(function(){c[e].classList.remove("pressed")},300))}},updateTips:function updateTips(){var a=$("#tips");a.innerHTML="";var b=Shuang.resource.scheme[this.config.scheme];if(b.tips){var c,d=Array.isArray(b.tips)?b.tips:[b.tips],e=_createForOfIteratorHelper(d);try{for(e.s();!(c=e.n()).done;){var f=c.value,g=document.createElement("div");g.classList.add("line"),g.innerHTML=f,a.appendChild(g)}}catch(a){e.e(a)}finally{e.f()}}$("#pic").setAttribute("src","img/".concat(this.config.scheme,".png"))}};function detectDarkMode(){return!!(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches)||!!(6>new Date().getHours()||22=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function e(a){throw a},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=a[Symbol.iterator]()},n:function n(){var a=c.next();return g=a.done,a},e:function e(a){h=!0,f=a},f:function f(){try{g||null==c["return"]||c["return"]()}finally{if(h)throw f}}}}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;da.length)&&(b=a.length);for(var c=0,d=Array(b);c$("body").scrollWidth){var a=310===$("body").scrollWidth?310:$("#pic").scrollWidth,b=1874/1928*a/680;navigator&&navigator.userAgent&&/firefox/i.test(navigator.userAgent)?($("#keys").style.transform="scale(".concat(b,")"),$("#keys").style.transformOrigin="left top",$("#keys").style.margin="".concat(10*b,"px"),$("#pic-placeholder").style.height="".concat(300*(a/680),"px")):($("#keys").style.marginLeft="10px",$("#keys").style.zoom=b,$("#pic-placeholder").style.zoom=b)}else navigator&&navigator.userAgent&&/firefox/i.test(navigator.userAgent)?($("#keys").style.transform="unset",$("#keys").style.transformOrigin="unset",$("#pic-placeholder").style.height="300px",$("#keys").style.margin="10px auto"):($("#keys").style.marginLeft="auto",$("#keys").style.zoom="unset",$("#pic-placeholder").style.zoom="unset")},updatePressedKeyHint:function updatePressedKeyHint(a){if("false"!==this.config.showPressedKey&&a){var b,c=$$(".key"),d=_createForOfIteratorHelper(c);try{for(d.s();!(b=d.n()).done;){var f=b.value;f.classList.remove("pressed")}}catch(a){d.e(a)}finally{d.f()}var e="qwertyuiopasdfghjkl;zxcvbnm".indexOf(a.toLowerCase());-1===e||(c[e].classList.add("pressed"),setTimeout(function(){c[e].classList.remove("pressed")},250))}},updateTips:function updateTips(){var a=$("#tips");a.innerHTML="";var b=Shuang.resource.scheme[this.config.scheme];if(b.tips){var c,d=Array.isArray(b.tips)?b.tips:[b.tips],e=_createForOfIteratorHelper(d);try{for(e.s();!(c=e.n()).done;){var f=c.value,g=document.createElement("div");g.classList.add("line"),g.innerHTML=f,a.appendChild(g)}}catch(a){e.e(a)}finally{e.f()}}$("#pic").setAttribute("src","img/".concat(this.config.scheme,".png"))}};function detectDarkMode(){return!!(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches)||!!(6>new Date().getHours()||22双拼练习 @ BlueSky

1. 切换至系统自带的英文输入法

2. 空格键 / 回车键 切换或清空

3. Tab 键 显示答案(可能不唯一)

4. 手机练习推荐使用微信小程序

5. 使用 Chrome 浏览器 体验最佳

6. 查看 双拼输入介绍

\ No newline at end of file diff --git a/index.src.html b/index.src.html index e32d2312..50b74a00 100644 --- a/index.src.html +++ b/index.src.html @@ -121,7 +121,7 @@ src="https://api.ihint.me/qr.php?https://mp.weixin.qq.com/a/~Jaww_jP-YK1G39fiZ01Qxg~~">