@whitesev/domutils 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -766,6 +766,97 @@ var DOMUtils = (function () {
766
766
  }
767
767
  DOMUtilsContext.on(target, "keypress", null, handler, option);
768
768
  }
769
+ /**
770
+ * 监听某个元素键盘按键事件或window全局按键事件
771
+ * 按下有值的键时触发,按下Ctrl\Alt\Shift\Meta是无值键。按下先触发keydown事件,再触发keypress事件。
772
+ * @param target 需要监听的对象,可以是全局Window或者某个元素
773
+ * @param eventName 事件名,默认keypress
774
+ * @param callback 自己定义的回调事件,参数1为当前的key,参数2为组合按键,数组类型,包含ctrl、shift、alt和meta(win键或mac的cmd键)
775
+ * @param options 监听事件的配置
776
+ * @example
777
+ Utils.listenKeyboard(window,(keyName,keyValue,otherKey,event)=>{
778
+ if(keyName === "Enter"){
779
+ console.log("回车按键的值是:"+keyValue)
780
+ }
781
+ if(otherKey.indexOf("ctrl") && keyName === "Enter" ){
782
+ console.log("Ctrl和回车键");
783
+ }
784
+ })
785
+ * @example
786
+ 字母和数字键的键码值(keyCode)
787
+ 按键 键码 按键 键码 按键 键码 按键 键码
788
+ A 65 J 74 S 83 1 49
789
+ B 66 K 75 T 84 2 50
790
+ C 67 L 76 U 85 3 51
791
+ D 68 M 77 V 86 4 52
792
+ E 69 N 78 W 87 5 53
793
+ F 70 O 79 X 88 6 54
794
+ G 71 P 80 Y 89 7 55
795
+ H 72 Q 81 Z 90 8 56
796
+ I 73 R 82 0 48 9 57
797
+
798
+ 数字键盘上的键的键码值(keyCode)
799
+ 功能键键码值(keyCode)
800
+ 按键 键码 按键 键码 按键 键码 按键 键码
801
+ 0 96 8 104 F1 112 F7 118
802
+ 1 97 9 105 F2 113 F8 119
803
+ 2 98 * 106 F3 114 F9 120
804
+ 3 99 + 107 F4 115 F10 121
805
+ 4 100 Enter 108 F5 116 F11 122
806
+ 5 101 - 109 F6 117 F12 123
807
+ 6 102 . 110
808
+ 7 103 / 111
809
+
810
+ 控制键键码值(keyCode)
811
+ 按键 键码 按键 键码 按键 键码 按键 键码
812
+ BackSpace 8 Esc 27 → 39 -_ 189
813
+ Tab 9 Spacebar 32 ↓ 40 .> 190
814
+ Clear 12 Page Up 33 Insert 45 /? 191
815
+ Enter 13 Page Down 34 Delete 46 `~ 192
816
+ Shift 16 End 35 Num Lock 144 [{ 219
817
+ Control 17 Home 36 ;: 186 \| 220
818
+ Alt 18 ← 37 =+ 187 ]} 221
819
+ Cape Lock 20 ↑ 38 ,< 188 '" 222
820
+
821
+ 多媒体键码值(keyCode)
822
+ 按键 键码
823
+ 音量加 175
824
+ 音量减 174
825
+ 停止 179
826
+ 静音 173
827
+ 浏览器 172
828
+ 邮件 180
829
+ 搜索 170
830
+ 收藏 171
831
+ **/
832
+ listenKeyboard(target, eventName = "keypress", callback, options) {
833
+ let keyboardEventCallBack = function (event) {
834
+ let keyName = event.key || event.code;
835
+ let keyValue = event.charCode || event.keyCode || event.which;
836
+ let otherCodeList = [];
837
+ if (event.ctrlKey) {
838
+ otherCodeList.push("ctrl");
839
+ }
840
+ if (event.altKey) {
841
+ otherCodeList.push("alt");
842
+ }
843
+ if (event.metaKey) {
844
+ otherCodeList.push("meta");
845
+ }
846
+ if (event.shiftKey) {
847
+ otherCodeList.push("shift");
848
+ }
849
+ if (typeof callback === "function") {
850
+ callback(keyName, keyValue.toString(), otherCodeList, event);
851
+ }
852
+ };
853
+ this.on(target, eventName, keyboardEventCallBack, options);
854
+ return {
855
+ removeListen: () => {
856
+ this.off(target, eventName, keyboardEventCallBack, options);
857
+ },
858
+ };
859
+ }
769
860
  }
770
861
 
771
862
  class DOMUtils extends DOMUtilsEvent {
@@ -773,7 +864,7 @@ var DOMUtils = (function () {
773
864
  super(option);
774
865
  }
775
866
  /** 版本号 */
776
- version = "2024.7.24";
867
+ version = "2024.8.30";
777
868
  attr(element, attrName, attrValue) {
778
869
  let DOMUtilsContext = this;
779
870
  if (typeof element === "string") {