@whitesev/domutils 1.3.3 → 1.3.5
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.
- package/dist/index.amd.js +426 -99
- package/dist/index.amd.js.map +1 -1
- package/dist/index.cjs.js +426 -99
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +426 -99
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +426 -99
- package/dist/index.iife.js.map +1 -1
- package/dist/index.system.js +426 -99
- package/dist/index.system.js.map +1 -1
- package/dist/index.umd.js +426 -99
- package/dist/index.umd.js.map +1 -1
- package/dist/types/src/DOMUtils.d.ts +61 -41
- package/dist/types/src/DOMUtilsEvent.d.ts +14 -13
- package/dist/types/src/types/global.d.ts +6 -0
- package/package.json +1 -1
- package/src/DOMUtils.ts +464 -172
- package/src/DOMUtilsEvent.ts +105 -42
- package/src/types/global.d.ts +6 -0
package/dist/index.esm.js
CHANGED
|
@@ -593,11 +593,18 @@ class DOMUtilsEvent {
|
|
|
593
593
|
click(element, handler, details, useDispatchToTriggerEvent) {
|
|
594
594
|
let DOMUtilsContext = this;
|
|
595
595
|
if (typeof element === "string") {
|
|
596
|
-
element = DOMUtilsContext.windowApi.document.
|
|
596
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
597
597
|
}
|
|
598
598
|
if (element == null) {
|
|
599
599
|
return;
|
|
600
600
|
}
|
|
601
|
+
if (isNodeList(element)) {
|
|
602
|
+
// 设置
|
|
603
|
+
element.forEach(($ele) => {
|
|
604
|
+
DOMUtilsContext.click($ele, handler, details, useDispatchToTriggerEvent);
|
|
605
|
+
});
|
|
606
|
+
return;
|
|
607
|
+
}
|
|
601
608
|
if (handler == null) {
|
|
602
609
|
DOMUtilsContext.trigger(element, "click", details, useDispatchToTriggerEvent);
|
|
603
610
|
}
|
|
@@ -627,6 +634,13 @@ class DOMUtilsEvent {
|
|
|
627
634
|
if (element == null) {
|
|
628
635
|
return;
|
|
629
636
|
}
|
|
637
|
+
if (isNodeList(element)) {
|
|
638
|
+
// 设置
|
|
639
|
+
element.forEach(($ele) => {
|
|
640
|
+
DOMUtilsContext.focus($ele, handler, details, useDispatchToTriggerEvent);
|
|
641
|
+
});
|
|
642
|
+
return;
|
|
643
|
+
}
|
|
630
644
|
if (handler === null) {
|
|
631
645
|
DOMUtilsContext.trigger(element, "blur", details, useDispatchToTriggerEvent);
|
|
632
646
|
}
|
|
@@ -651,11 +665,18 @@ class DOMUtilsEvent {
|
|
|
651
665
|
focus(element, handler, details, useDispatchToTriggerEvent) {
|
|
652
666
|
let DOMUtilsContext = this;
|
|
653
667
|
if (typeof element === "string") {
|
|
654
|
-
element = DOMUtilsContext.windowApi.document.
|
|
668
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
655
669
|
}
|
|
656
670
|
if (element == null) {
|
|
657
671
|
return;
|
|
658
672
|
}
|
|
673
|
+
if (isNodeList(element)) {
|
|
674
|
+
// 设置
|
|
675
|
+
element.forEach(($ele) => {
|
|
676
|
+
DOMUtilsContext.focus($ele, handler, details, useDispatchToTriggerEvent);
|
|
677
|
+
});
|
|
678
|
+
return;
|
|
679
|
+
}
|
|
659
680
|
if (handler == null) {
|
|
660
681
|
DOMUtilsContext.trigger(element, "focus", details, useDispatchToTriggerEvent);
|
|
661
682
|
}
|
|
@@ -680,18 +701,25 @@ class DOMUtilsEvent {
|
|
|
680
701
|
hover(element, handler, option) {
|
|
681
702
|
let DOMUtilsContext = this;
|
|
682
703
|
if (typeof element === "string") {
|
|
683
|
-
element = DOMUtilsContext.windowApi.document.
|
|
704
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
684
705
|
}
|
|
685
706
|
if (element == null) {
|
|
686
707
|
return;
|
|
687
708
|
}
|
|
709
|
+
if (isNodeList(element)) {
|
|
710
|
+
// 设置
|
|
711
|
+
element.forEach(($ele) => {
|
|
712
|
+
DOMUtilsContext.hover($ele, handler, option);
|
|
713
|
+
});
|
|
714
|
+
return;
|
|
715
|
+
}
|
|
688
716
|
DOMUtilsContext.on(element, "mouseenter", null, handler, option);
|
|
689
717
|
DOMUtilsContext.on(element, "mouseleave", null, handler, option);
|
|
690
718
|
}
|
|
691
719
|
/**
|
|
692
720
|
* 当按键松开时触发事件
|
|
693
721
|
* keydown - > keypress - > keyup
|
|
694
|
-
* @param
|
|
722
|
+
* @param element 当前元素
|
|
695
723
|
* @param handler 事件处理函数
|
|
696
724
|
* @param option 配置
|
|
697
725
|
* @example
|
|
@@ -703,20 +731,27 @@ class DOMUtilsEvent {
|
|
|
703
731
|
* console.log("按键松开");
|
|
704
732
|
* })
|
|
705
733
|
*/
|
|
706
|
-
keyup(
|
|
734
|
+
keyup(element, handler, option) {
|
|
707
735
|
let DOMUtilsContext = this;
|
|
708
|
-
if (
|
|
736
|
+
if (element == null) {
|
|
709
737
|
return;
|
|
710
738
|
}
|
|
711
|
-
if (typeof
|
|
712
|
-
|
|
739
|
+
if (typeof element === "string") {
|
|
740
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
741
|
+
}
|
|
742
|
+
if (isNodeList(element)) {
|
|
743
|
+
// 设置
|
|
744
|
+
element.forEach(($ele) => {
|
|
745
|
+
DOMUtilsContext.keyup($ele, handler, option);
|
|
746
|
+
});
|
|
747
|
+
return;
|
|
713
748
|
}
|
|
714
|
-
DOMUtilsContext.on(
|
|
749
|
+
DOMUtilsContext.on(element, "keyup", null, handler, option);
|
|
715
750
|
}
|
|
716
751
|
/**
|
|
717
752
|
* 当按键按下时触发事件
|
|
718
753
|
* keydown - > keypress - > keyup
|
|
719
|
-
* @param
|
|
754
|
+
* @param element 目标
|
|
720
755
|
* @param handler 事件处理函数
|
|
721
756
|
* @param option 配置
|
|
722
757
|
* @example
|
|
@@ -728,20 +763,27 @@ class DOMUtilsEvent {
|
|
|
728
763
|
* console.log("按键按下");
|
|
729
764
|
* })
|
|
730
765
|
*/
|
|
731
|
-
keydown(
|
|
766
|
+
keydown(element, handler, option) {
|
|
732
767
|
let DOMUtilsContext = this;
|
|
733
|
-
if (
|
|
768
|
+
if (element == null) {
|
|
734
769
|
return;
|
|
735
770
|
}
|
|
736
|
-
if (typeof
|
|
737
|
-
|
|
771
|
+
if (typeof element === "string") {
|
|
772
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
773
|
+
}
|
|
774
|
+
if (isNodeList(element)) {
|
|
775
|
+
// 设置
|
|
776
|
+
element.forEach(($ele) => {
|
|
777
|
+
DOMUtilsContext.keydown($ele, handler, option);
|
|
778
|
+
});
|
|
779
|
+
return;
|
|
738
780
|
}
|
|
739
|
-
DOMUtilsContext.on(
|
|
781
|
+
DOMUtilsContext.on(element, "keydown", null, handler, option);
|
|
740
782
|
}
|
|
741
783
|
/**
|
|
742
784
|
* 当按键按下时触发事件
|
|
743
785
|
* keydown - > keypress - > keyup
|
|
744
|
-
* @param
|
|
786
|
+
* @param element 目标
|
|
745
787
|
* @param handler 事件处理函数
|
|
746
788
|
* @param option 配置
|
|
747
789
|
* @example
|
|
@@ -753,20 +795,27 @@ class DOMUtilsEvent {
|
|
|
753
795
|
* console.log("按键按下");
|
|
754
796
|
* })
|
|
755
797
|
*/
|
|
756
|
-
keypress(
|
|
798
|
+
keypress(element, handler, option) {
|
|
757
799
|
let DOMUtilsContext = this;
|
|
758
|
-
if (
|
|
800
|
+
if (element == null) {
|
|
759
801
|
return;
|
|
760
802
|
}
|
|
761
|
-
if (typeof
|
|
762
|
-
|
|
803
|
+
if (typeof element === "string") {
|
|
804
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
805
|
+
}
|
|
806
|
+
if (isNodeList(element)) {
|
|
807
|
+
// 设置
|
|
808
|
+
element.forEach(($ele) => {
|
|
809
|
+
DOMUtilsContext.keypress($ele, handler, option);
|
|
810
|
+
});
|
|
811
|
+
return;
|
|
763
812
|
}
|
|
764
|
-
DOMUtilsContext.on(
|
|
813
|
+
DOMUtilsContext.on(element, "keypress", null, handler, option);
|
|
765
814
|
}
|
|
766
815
|
/**
|
|
767
816
|
* 监听某个元素键盘按键事件或window全局按键事件
|
|
768
817
|
* 按下有值的键时触发,按下Ctrl\Alt\Shift\Meta是无值键。按下先触发keydown事件,再触发keypress事件。
|
|
769
|
-
* @param
|
|
818
|
+
* @param element 需要监听的对象,可以是全局Window或者某个元素
|
|
770
819
|
* @param eventName 事件名,默认keypress
|
|
771
820
|
* @param callback 自己定义的回调事件,参数1为当前的key,参数2为组合按键,数组类型,包含ctrl、shift、alt和meta(win键或mac的cmd键)
|
|
772
821
|
* @param options 监听事件的配置
|
|
@@ -826,7 +875,11 @@ class DOMUtilsEvent {
|
|
|
826
875
|
搜索 170
|
|
827
876
|
收藏 171
|
|
828
877
|
**/
|
|
829
|
-
listenKeyboard(
|
|
878
|
+
listenKeyboard(element, eventName = "keypress", callback, options) {
|
|
879
|
+
let DOMUtilsContext = this;
|
|
880
|
+
if (typeof element === "string") {
|
|
881
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
882
|
+
}
|
|
830
883
|
let keyboardEventCallBack = function (event) {
|
|
831
884
|
/** 键名 */
|
|
832
885
|
let keyName = event.key || event.code;
|
|
@@ -850,29 +903,49 @@ class DOMUtilsEvent {
|
|
|
850
903
|
callback(keyName, keyValue, otherCodeList, event);
|
|
851
904
|
}
|
|
852
905
|
};
|
|
853
|
-
|
|
906
|
+
DOMUtilsContext.on(element, eventName, keyboardEventCallBack, options);
|
|
854
907
|
return {
|
|
855
908
|
removeListen: () => {
|
|
856
|
-
|
|
909
|
+
DOMUtilsContext.off(element, eventName, keyboardEventCallBack, options);
|
|
857
910
|
},
|
|
858
911
|
};
|
|
859
912
|
}
|
|
860
913
|
}
|
|
861
914
|
|
|
915
|
+
/**
|
|
916
|
+
* 判断是否是元素列表
|
|
917
|
+
* @param $ele
|
|
918
|
+
*/
|
|
919
|
+
const isNodeList = ($ele) => {
|
|
920
|
+
return Array.isArray($ele) || $ele instanceof NodeList;
|
|
921
|
+
};
|
|
862
922
|
class DOMUtils extends DOMUtilsEvent {
|
|
863
923
|
constructor(option) {
|
|
864
924
|
super(option);
|
|
865
925
|
}
|
|
866
926
|
/** 版本号 */
|
|
867
|
-
version = "2024.
|
|
927
|
+
version = "2024.10.22";
|
|
868
928
|
attr(element, attrName, attrValue) {
|
|
869
929
|
let DOMUtilsContext = this;
|
|
870
930
|
if (typeof element === "string") {
|
|
871
|
-
element = DOMUtilsContext.windowApi.document.
|
|
931
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
872
932
|
}
|
|
873
933
|
if (element == null) {
|
|
874
934
|
return;
|
|
875
935
|
}
|
|
936
|
+
if (isNodeList(element)) {
|
|
937
|
+
if (attrValue == null) {
|
|
938
|
+
// 获取属性
|
|
939
|
+
return DOMUtilsContext.attr(element[0], attrName, attrValue);
|
|
940
|
+
}
|
|
941
|
+
else {
|
|
942
|
+
// 设置属性
|
|
943
|
+
element.forEach(($ele) => {
|
|
944
|
+
DOMUtilsContext.attr($ele, attrName, attrValue);
|
|
945
|
+
});
|
|
946
|
+
return;
|
|
947
|
+
}
|
|
948
|
+
}
|
|
876
949
|
if (attrValue == null) {
|
|
877
950
|
return element.getAttribute(attrName);
|
|
878
951
|
}
|
|
@@ -961,14 +1034,40 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
961
1034
|
return propertyValue;
|
|
962
1035
|
}
|
|
963
1036
|
if (typeof element === "string") {
|
|
964
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1037
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
965
1038
|
}
|
|
966
1039
|
if (element == null) {
|
|
967
1040
|
return;
|
|
968
1041
|
}
|
|
1042
|
+
if (isNodeList(element)) {
|
|
1043
|
+
if (typeof property === "string") {
|
|
1044
|
+
if (value == null) {
|
|
1045
|
+
// 获取属性
|
|
1046
|
+
return DOMUtilsContext.css(element[0], property);
|
|
1047
|
+
}
|
|
1048
|
+
else {
|
|
1049
|
+
// 设置属性
|
|
1050
|
+
element.forEach(($ele) => {
|
|
1051
|
+
DOMUtilsContext.css($ele, property);
|
|
1052
|
+
});
|
|
1053
|
+
return;
|
|
1054
|
+
}
|
|
1055
|
+
}
|
|
1056
|
+
else if (typeof property === "object") {
|
|
1057
|
+
// 设置属性
|
|
1058
|
+
element.forEach(($ele) => {
|
|
1059
|
+
DOMUtilsContext.css($ele, property);
|
|
1060
|
+
});
|
|
1061
|
+
return;
|
|
1062
|
+
}
|
|
1063
|
+
else ;
|
|
1064
|
+
return;
|
|
1065
|
+
}
|
|
969
1066
|
if (typeof property === "string") {
|
|
970
1067
|
if (value == null) {
|
|
971
|
-
return
|
|
1068
|
+
return DOMUtilsContext.windowApi.globalThis
|
|
1069
|
+
.getComputedStyle(element)
|
|
1070
|
+
.getPropertyValue(property);
|
|
972
1071
|
}
|
|
973
1072
|
else {
|
|
974
1073
|
if (value === "string" && value.includes("!important")) {
|
|
@@ -992,15 +1091,29 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
992
1091
|
}
|
|
993
1092
|
}
|
|
994
1093
|
}
|
|
1094
|
+
else ;
|
|
995
1095
|
}
|
|
996
1096
|
text(element, text) {
|
|
997
1097
|
let DOMUtilsContext = this;
|
|
998
1098
|
if (typeof element === "string") {
|
|
999
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1099
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1000
1100
|
}
|
|
1001
1101
|
if (element == null) {
|
|
1002
1102
|
return;
|
|
1003
1103
|
}
|
|
1104
|
+
if (isNodeList(element)) {
|
|
1105
|
+
if (text == null) {
|
|
1106
|
+
// 获取
|
|
1107
|
+
return DOMUtilsContext.text(element[0]);
|
|
1108
|
+
}
|
|
1109
|
+
else {
|
|
1110
|
+
// 设置
|
|
1111
|
+
element.forEach(($ele) => {
|
|
1112
|
+
DOMUtilsContext.text($ele, text);
|
|
1113
|
+
});
|
|
1114
|
+
}
|
|
1115
|
+
return;
|
|
1116
|
+
}
|
|
1004
1117
|
if (text == null) {
|
|
1005
1118
|
return element.textContent || element.innerText;
|
|
1006
1119
|
}
|
|
@@ -1019,16 +1132,31 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1019
1132
|
html(element, html) {
|
|
1020
1133
|
let DOMUtilsContext = this;
|
|
1021
1134
|
if (typeof element === "string") {
|
|
1022
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1135
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1023
1136
|
}
|
|
1024
1137
|
if (element == null) {
|
|
1025
1138
|
return;
|
|
1026
1139
|
}
|
|
1140
|
+
if (isNodeList(element)) {
|
|
1141
|
+
if (html == null) {
|
|
1142
|
+
// 获取
|
|
1143
|
+
return DOMUtilsContext.html(element[0]);
|
|
1144
|
+
}
|
|
1145
|
+
else {
|
|
1146
|
+
// 设置
|
|
1147
|
+
element.forEach(($ele) => {
|
|
1148
|
+
DOMUtilsContext.html($ele, html);
|
|
1149
|
+
});
|
|
1150
|
+
}
|
|
1151
|
+
return;
|
|
1152
|
+
}
|
|
1027
1153
|
if (html == null) {
|
|
1154
|
+
// 获取
|
|
1028
1155
|
return element.innerHTML;
|
|
1029
1156
|
}
|
|
1030
1157
|
else {
|
|
1031
|
-
|
|
1158
|
+
// 设置
|
|
1159
|
+
if (html instanceof Element) {
|
|
1032
1160
|
html = html.innerHTML;
|
|
1033
1161
|
}
|
|
1034
1162
|
if ("innerHTML" in element) {
|
|
@@ -1050,7 +1178,7 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1050
1178
|
recovery();
|
|
1051
1179
|
return transformInfo;
|
|
1052
1180
|
}
|
|
1053
|
-
let elementTransform = getComputedStyle(element).transform;
|
|
1181
|
+
let elementTransform = DOMUtilsContext.windowApi.globalThis.getComputedStyle(element).transform;
|
|
1054
1182
|
if (elementTransform != null &&
|
|
1055
1183
|
elementTransform !== "none" &&
|
|
1056
1184
|
elementTransform !== "") {
|
|
@@ -1074,12 +1202,26 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1074
1202
|
val(element, value) {
|
|
1075
1203
|
let DOMUtilsContext = this;
|
|
1076
1204
|
if (typeof element === "string") {
|
|
1077
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1205
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1078
1206
|
}
|
|
1079
1207
|
if (element == null) {
|
|
1080
1208
|
return;
|
|
1081
1209
|
}
|
|
1210
|
+
if (isNodeList(element)) {
|
|
1211
|
+
if (value == null) {
|
|
1212
|
+
// 获取
|
|
1213
|
+
return DOMUtilsContext.val(element[0]);
|
|
1214
|
+
}
|
|
1215
|
+
else {
|
|
1216
|
+
// 设置
|
|
1217
|
+
element.forEach(($ele) => {
|
|
1218
|
+
DOMUtilsContext.val($ele, value);
|
|
1219
|
+
});
|
|
1220
|
+
}
|
|
1221
|
+
return;
|
|
1222
|
+
}
|
|
1082
1223
|
if (value == null) {
|
|
1224
|
+
// 获取
|
|
1083
1225
|
if (element.localName === "input" &&
|
|
1084
1226
|
(element.type === "checkbox" || element.type === "radio")) {
|
|
1085
1227
|
return element.checked;
|
|
@@ -1089,6 +1231,7 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1089
1231
|
}
|
|
1090
1232
|
}
|
|
1091
1233
|
else {
|
|
1234
|
+
// 设置
|
|
1092
1235
|
if (element.localName === "input" &&
|
|
1093
1236
|
(element.type === "checkbox" || element.type === "radio")) {
|
|
1094
1237
|
element.checked = !!value;
|
|
@@ -1100,17 +1243,30 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1100
1243
|
}
|
|
1101
1244
|
prop(element, propName, propValue) {
|
|
1102
1245
|
let DOMUtilsContext = this;
|
|
1246
|
+
if (typeof element === "string") {
|
|
1247
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1248
|
+
}
|
|
1103
1249
|
if (element == null) {
|
|
1104
1250
|
return;
|
|
1105
1251
|
}
|
|
1106
|
-
if (
|
|
1107
|
-
|
|
1252
|
+
if (isNodeList(element)) {
|
|
1253
|
+
if (propValue == null) {
|
|
1254
|
+
// 获取
|
|
1255
|
+
return DOMUtilsContext.prop(element[0], propName);
|
|
1256
|
+
}
|
|
1257
|
+
else {
|
|
1258
|
+
// 设置
|
|
1259
|
+
element.forEach(($ele) => {
|
|
1260
|
+
DOMUtilsContext.prop($ele, propName, propValue);
|
|
1261
|
+
});
|
|
1262
|
+
}
|
|
1263
|
+
return;
|
|
1108
1264
|
}
|
|
1109
1265
|
if (propValue == null) {
|
|
1110
|
-
return element
|
|
1266
|
+
return Reflect.get(element, propName);
|
|
1111
1267
|
}
|
|
1112
1268
|
else {
|
|
1113
|
-
element
|
|
1269
|
+
Reflect.set(element, propName, propValue);
|
|
1114
1270
|
}
|
|
1115
1271
|
}
|
|
1116
1272
|
/**
|
|
@@ -1125,11 +1281,18 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1125
1281
|
removeAttr(element, attrName) {
|
|
1126
1282
|
let DOMUtilsContext = this;
|
|
1127
1283
|
if (typeof element === "string") {
|
|
1128
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1284
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1129
1285
|
}
|
|
1130
1286
|
if (element == null) {
|
|
1131
1287
|
return;
|
|
1132
1288
|
}
|
|
1289
|
+
if (isNodeList(element)) {
|
|
1290
|
+
// 设置
|
|
1291
|
+
element.forEach(($ele) => {
|
|
1292
|
+
DOMUtilsContext.removeAttr($ele, attrName);
|
|
1293
|
+
});
|
|
1294
|
+
return;
|
|
1295
|
+
}
|
|
1133
1296
|
element.removeAttribute(attrName);
|
|
1134
1297
|
}
|
|
1135
1298
|
/**
|
|
@@ -1144,15 +1307,30 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1144
1307
|
removeClass(element, className) {
|
|
1145
1308
|
let DOMUtilsContext = this;
|
|
1146
1309
|
if (typeof element === "string") {
|
|
1147
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1310
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1148
1311
|
}
|
|
1149
1312
|
if (element == null) {
|
|
1150
1313
|
return;
|
|
1151
1314
|
}
|
|
1152
|
-
if (
|
|
1315
|
+
if (isNodeList(element)) {
|
|
1316
|
+
// 设置
|
|
1317
|
+
element.forEach(($ele) => {
|
|
1318
|
+
DOMUtilsContext.removeClass($ele, className);
|
|
1319
|
+
});
|
|
1153
1320
|
return;
|
|
1154
1321
|
}
|
|
1155
|
-
|
|
1322
|
+
if (className == null) {
|
|
1323
|
+
// 清空全部className
|
|
1324
|
+
element.className = "";
|
|
1325
|
+
}
|
|
1326
|
+
else {
|
|
1327
|
+
if (!Array.isArray(className)) {
|
|
1328
|
+
className = className.split(" ");
|
|
1329
|
+
}
|
|
1330
|
+
className.forEach((itemClassName) => {
|
|
1331
|
+
element.classList.remove(itemClassName);
|
|
1332
|
+
});
|
|
1333
|
+
}
|
|
1156
1334
|
}
|
|
1157
1335
|
/**
|
|
1158
1336
|
* 移除元素的属性
|
|
@@ -1166,11 +1344,18 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1166
1344
|
removeProp(element, propName) {
|
|
1167
1345
|
let DOMUtilsContext = this;
|
|
1168
1346
|
if (typeof element === "string") {
|
|
1169
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1347
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1170
1348
|
}
|
|
1171
1349
|
if (element == null) {
|
|
1172
1350
|
return;
|
|
1173
1351
|
}
|
|
1352
|
+
if (isNodeList(element)) {
|
|
1353
|
+
// 设置
|
|
1354
|
+
element.forEach(($ele) => {
|
|
1355
|
+
DOMUtilsContext.removeProp($ele, propName);
|
|
1356
|
+
});
|
|
1357
|
+
return;
|
|
1358
|
+
}
|
|
1174
1359
|
DOMUtilsCommonUtils.delete(element, propName);
|
|
1175
1360
|
}
|
|
1176
1361
|
/**
|
|
@@ -1185,22 +1370,22 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1185
1370
|
replaceWith(element, newElement) {
|
|
1186
1371
|
let DOMUtilsContext = this;
|
|
1187
1372
|
if (typeof element === "string") {
|
|
1188
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1373
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1189
1374
|
}
|
|
1190
1375
|
if (element == null) {
|
|
1191
1376
|
return;
|
|
1192
1377
|
}
|
|
1193
|
-
if (
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
element.forEach((item) => {
|
|
1198
|
-
DOMUtilsContext.replaceWith(item, newElement);
|
|
1378
|
+
if (isNodeList(element)) {
|
|
1379
|
+
// 设置
|
|
1380
|
+
element.forEach(($ele) => {
|
|
1381
|
+
DOMUtilsContext.replaceWith($ele, newElement);
|
|
1199
1382
|
});
|
|
1383
|
+
return;
|
|
1200
1384
|
}
|
|
1201
|
-
|
|
1202
|
-
|
|
1385
|
+
if (typeof newElement === "string") {
|
|
1386
|
+
newElement = DOMUtilsContext.parseHTML(newElement, false, false);
|
|
1203
1387
|
}
|
|
1388
|
+
element.parentElement.replaceChild(newElement, element);
|
|
1204
1389
|
}
|
|
1205
1390
|
/**
|
|
1206
1391
|
* 给元素添加class
|
|
@@ -1214,12 +1399,27 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1214
1399
|
addClass(element, className) {
|
|
1215
1400
|
let DOMUtilsContext = this;
|
|
1216
1401
|
if (typeof element === "string") {
|
|
1217
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1402
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1218
1403
|
}
|
|
1219
1404
|
if (element == null) {
|
|
1220
1405
|
return;
|
|
1221
1406
|
}
|
|
1222
|
-
element
|
|
1407
|
+
if (isNodeList(element)) {
|
|
1408
|
+
// 设置
|
|
1409
|
+
element.forEach(($ele) => {
|
|
1410
|
+
DOMUtilsContext.addClass($ele, className);
|
|
1411
|
+
});
|
|
1412
|
+
return;
|
|
1413
|
+
}
|
|
1414
|
+
if (!Array.isArray(className)) {
|
|
1415
|
+
className = className.split(" ");
|
|
1416
|
+
}
|
|
1417
|
+
className.forEach((itemClassName) => {
|
|
1418
|
+
if (itemClassName.trim() == "") {
|
|
1419
|
+
return;
|
|
1420
|
+
}
|
|
1421
|
+
element.classList.add(itemClassName);
|
|
1422
|
+
});
|
|
1223
1423
|
}
|
|
1224
1424
|
/**
|
|
1225
1425
|
* 函数在元素内部末尾添加子元素或HTML字符串
|
|
@@ -1233,11 +1433,18 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1233
1433
|
append(element, content) {
|
|
1234
1434
|
let DOMUtilsContext = this;
|
|
1235
1435
|
if (typeof element === "string") {
|
|
1236
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1436
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1237
1437
|
}
|
|
1238
1438
|
if (element == null) {
|
|
1239
1439
|
return;
|
|
1240
1440
|
}
|
|
1441
|
+
if (isNodeList(element)) {
|
|
1442
|
+
// 设置
|
|
1443
|
+
element.forEach(($ele) => {
|
|
1444
|
+
DOMUtilsContext.append($ele, content);
|
|
1445
|
+
});
|
|
1446
|
+
return;
|
|
1447
|
+
}
|
|
1241
1448
|
function elementAppendChild(ele, text) {
|
|
1242
1449
|
if (typeof content === "string") {
|
|
1243
1450
|
ele.insertAdjacentHTML("beforeend", text);
|
|
@@ -1251,7 +1458,7 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1251
1458
|
let fragment = DOMUtilsContext.windowApi.document.createDocumentFragment();
|
|
1252
1459
|
content.forEach((ele) => {
|
|
1253
1460
|
if (typeof ele === "string") {
|
|
1254
|
-
ele =
|
|
1461
|
+
ele = DOMUtilsContext.parseHTML(ele, true, false);
|
|
1255
1462
|
}
|
|
1256
1463
|
fragment.appendChild(ele);
|
|
1257
1464
|
});
|
|
@@ -1273,11 +1480,18 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1273
1480
|
prepend(element, content) {
|
|
1274
1481
|
let DOMUtilsContext = this;
|
|
1275
1482
|
if (typeof element === "string") {
|
|
1276
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1483
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1277
1484
|
}
|
|
1278
1485
|
if (element == null) {
|
|
1279
1486
|
return;
|
|
1280
1487
|
}
|
|
1488
|
+
if (isNodeList(element)) {
|
|
1489
|
+
// 设置
|
|
1490
|
+
element.forEach(($ele) => {
|
|
1491
|
+
DOMUtilsContext.prepend($ele, content);
|
|
1492
|
+
});
|
|
1493
|
+
return;
|
|
1494
|
+
}
|
|
1281
1495
|
if (typeof content === "string") {
|
|
1282
1496
|
element.insertAdjacentHTML("afterbegin", content);
|
|
1283
1497
|
}
|
|
@@ -1303,11 +1517,18 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1303
1517
|
after(element, content) {
|
|
1304
1518
|
let DOMUtilsContext = this;
|
|
1305
1519
|
if (typeof element === "string") {
|
|
1306
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1520
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1307
1521
|
}
|
|
1308
1522
|
if (element == null) {
|
|
1309
1523
|
return;
|
|
1310
1524
|
}
|
|
1525
|
+
if (isNodeList(element)) {
|
|
1526
|
+
// 设置
|
|
1527
|
+
element.forEach(($ele) => {
|
|
1528
|
+
DOMUtilsContext.after($ele, content);
|
|
1529
|
+
});
|
|
1530
|
+
return;
|
|
1531
|
+
}
|
|
1311
1532
|
if (typeof content === "string") {
|
|
1312
1533
|
element.insertAdjacentHTML("afterend", content);
|
|
1313
1534
|
}
|
|
@@ -1335,11 +1556,18 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1335
1556
|
before(element, content) {
|
|
1336
1557
|
let DOMUtilsContext = this;
|
|
1337
1558
|
if (typeof element === "string") {
|
|
1338
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1559
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1339
1560
|
}
|
|
1340
1561
|
if (element == null) {
|
|
1341
1562
|
return;
|
|
1342
1563
|
}
|
|
1564
|
+
if (isNodeList(element)) {
|
|
1565
|
+
// 设置
|
|
1566
|
+
element.forEach(($ele) => {
|
|
1567
|
+
DOMUtilsContext.before($ele, content);
|
|
1568
|
+
});
|
|
1569
|
+
return;
|
|
1570
|
+
}
|
|
1343
1571
|
if (typeof content === "string") {
|
|
1344
1572
|
element.insertAdjacentHTML("beforebegin", content);
|
|
1345
1573
|
}
|
|
@@ -1355,30 +1583,28 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1355
1583
|
}
|
|
1356
1584
|
/**
|
|
1357
1585
|
* 移除元素
|
|
1358
|
-
* @param
|
|
1586
|
+
* @param element 目标元素
|
|
1359
1587
|
* @example
|
|
1360
1588
|
* // 元素a.xx前面添加一个元素
|
|
1361
1589
|
* DOMUtils.remove(document.querySelector("a.xx"))
|
|
1362
1590
|
* DOMUtils.remove(document.querySelectorAll("a.xx"))
|
|
1363
1591
|
* DOMUtils.remove("a.xx")
|
|
1364
1592
|
* */
|
|
1365
|
-
remove(
|
|
1593
|
+
remove(element) {
|
|
1366
1594
|
let DOMUtilsContext = this;
|
|
1367
|
-
if (typeof
|
|
1368
|
-
|
|
1595
|
+
if (typeof element === "string") {
|
|
1596
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1369
1597
|
}
|
|
1370
|
-
if (
|
|
1598
|
+
if (element == null) {
|
|
1371
1599
|
return;
|
|
1372
1600
|
}
|
|
1373
|
-
if (
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
}
|
|
1379
|
-
else {
|
|
1380
|
-
target.remove();
|
|
1601
|
+
if (isNodeList(element)) {
|
|
1602
|
+
element.forEach(($ele) => {
|
|
1603
|
+
DOMUtilsContext.remove($ele);
|
|
1604
|
+
});
|
|
1605
|
+
return;
|
|
1381
1606
|
}
|
|
1607
|
+
element.remove();
|
|
1382
1608
|
}
|
|
1383
1609
|
/**
|
|
1384
1610
|
* 移除元素的所有子元素
|
|
@@ -1391,11 +1617,18 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1391
1617
|
empty(element) {
|
|
1392
1618
|
let DOMUtilsContext = this;
|
|
1393
1619
|
if (typeof element === "string") {
|
|
1394
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1620
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1395
1621
|
}
|
|
1396
1622
|
if (element == null) {
|
|
1397
1623
|
return;
|
|
1398
1624
|
}
|
|
1625
|
+
if (isNodeList(element)) {
|
|
1626
|
+
// 设置
|
|
1627
|
+
element.forEach(($ele) => {
|
|
1628
|
+
DOMUtilsContext.empty($ele);
|
|
1629
|
+
});
|
|
1630
|
+
return;
|
|
1631
|
+
}
|
|
1399
1632
|
element.innerHTML = "";
|
|
1400
1633
|
}
|
|
1401
1634
|
/**
|
|
@@ -1426,7 +1659,8 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1426
1659
|
width(element, isShow = false) {
|
|
1427
1660
|
let DOMUtilsContext = this;
|
|
1428
1661
|
if (typeof element === "string") {
|
|
1429
|
-
element =
|
|
1662
|
+
element =
|
|
1663
|
+
DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1430
1664
|
}
|
|
1431
1665
|
if (element == null) {
|
|
1432
1666
|
return;
|
|
@@ -1538,7 +1772,7 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1538
1772
|
}
|
|
1539
1773
|
element = element;
|
|
1540
1774
|
if (isShow || (!isShow && DOMUtilsCommonUtils.isShow(element))) {
|
|
1541
|
-
let style = getComputedStyle(element, null);
|
|
1775
|
+
let style = DOMUtilsContext.windowApi.globalThis.getComputedStyle(element, null);
|
|
1542
1776
|
let marginLeft = DOMUtilsCommonUtils.getStyleValue(style, "marginLeft");
|
|
1543
1777
|
let marginRight = DOMUtilsCommonUtils.getStyleValue(style, "marginRight");
|
|
1544
1778
|
return element.offsetWidth + marginLeft + marginRight;
|
|
@@ -1564,7 +1798,7 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1564
1798
|
}
|
|
1565
1799
|
element = element;
|
|
1566
1800
|
if (isShow || (!isShow && DOMUtilsCommonUtils.isShow(element))) {
|
|
1567
|
-
let style = getComputedStyle(element, null);
|
|
1801
|
+
let style = DOMUtilsContext.windowApi.globalThis.getComputedStyle(element, null);
|
|
1568
1802
|
let marginTop = DOMUtilsCommonUtils.getStyleValue(style, "marginTop");
|
|
1569
1803
|
let marginBottom = DOMUtilsCommonUtils.getStyleValue(style, "marginBottom");
|
|
1570
1804
|
return element.offsetHeight + marginTop + marginBottom;
|
|
@@ -1591,11 +1825,18 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1591
1825
|
animate(element, styles, duration = 1000, callback = null) {
|
|
1592
1826
|
let DOMUtilsContext = this;
|
|
1593
1827
|
if (typeof element === "string") {
|
|
1594
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1828
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1595
1829
|
}
|
|
1596
1830
|
if (element == null) {
|
|
1597
1831
|
return;
|
|
1598
1832
|
}
|
|
1833
|
+
if (isNodeList(element)) {
|
|
1834
|
+
// 设置
|
|
1835
|
+
element.forEach(($ele) => {
|
|
1836
|
+
DOMUtilsContext.animate($ele, styles, duration, callback);
|
|
1837
|
+
});
|
|
1838
|
+
return;
|
|
1839
|
+
}
|
|
1599
1840
|
if (typeof duration !== "number" || duration <= 0) {
|
|
1600
1841
|
throw new TypeError("duration must be a positive number");
|
|
1601
1842
|
}
|
|
@@ -1612,7 +1853,9 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1612
1853
|
let from = {};
|
|
1613
1854
|
let to = {};
|
|
1614
1855
|
for (let prop in styles) {
|
|
1615
|
-
from[prop] =
|
|
1856
|
+
from[prop] =
|
|
1857
|
+
element.style[prop] ||
|
|
1858
|
+
DOMUtilsContext.windowApi.globalThis.getComputedStyle(element)[prop];
|
|
1616
1859
|
to[prop] = styles[prop];
|
|
1617
1860
|
}
|
|
1618
1861
|
let timer = setInterval(function () {
|
|
@@ -1644,18 +1887,26 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1644
1887
|
wrap(element, wrapperHTML) {
|
|
1645
1888
|
let DOMUtilsContext = this;
|
|
1646
1889
|
if (typeof element === "string") {
|
|
1647
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1890
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1648
1891
|
}
|
|
1649
1892
|
if (element == null) {
|
|
1650
1893
|
return;
|
|
1651
1894
|
}
|
|
1895
|
+
if (isNodeList(element)) {
|
|
1896
|
+
// 设置
|
|
1897
|
+
element.forEach(($ele) => {
|
|
1898
|
+
DOMUtilsContext.wrap($ele, wrapperHTML);
|
|
1899
|
+
});
|
|
1900
|
+
return;
|
|
1901
|
+
}
|
|
1652
1902
|
element = element;
|
|
1653
1903
|
// 创建一个新的div元素,并将wrapperHTML作为其innerHTML
|
|
1654
1904
|
let wrapper = DOMUtilsContext.windowApi.document.createElement("div");
|
|
1655
1905
|
wrapper.innerHTML = wrapperHTML;
|
|
1656
1906
|
let wrapperFirstChild = wrapper.firstChild;
|
|
1657
1907
|
// 将要包裹的元素插入目标元素前面
|
|
1658
|
-
element.parentElement
|
|
1908
|
+
let parentElement = element.parentElement;
|
|
1909
|
+
parentElement.insertBefore(wrapperFirstChild, element);
|
|
1659
1910
|
// 将要包裹的元素移动到wrapper中
|
|
1660
1911
|
wrapperFirstChild.appendChild(element);
|
|
1661
1912
|
}
|
|
@@ -1735,6 +1986,8 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1735
1986
|
}
|
|
1736
1987
|
parseHTML(html, useParser = false, isComplete = false) {
|
|
1737
1988
|
let DOMUtilsContext = this;
|
|
1989
|
+
// 去除html前后的空格
|
|
1990
|
+
html = html.trim();
|
|
1738
1991
|
function parseHTMLByDOMParser() {
|
|
1739
1992
|
let parser = new DOMParser();
|
|
1740
1993
|
if (isComplete) {
|
|
@@ -1761,16 +2014,61 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1761
2014
|
return parseHTMLByCreateDom();
|
|
1762
2015
|
}
|
|
1763
2016
|
}
|
|
2017
|
+
/**
|
|
2018
|
+
* 序列化表单元素
|
|
2019
|
+
* @param $form 表单元素
|
|
2020
|
+
* @example
|
|
2021
|
+
* DOMUtils.serialize(document.querySelector("form"))
|
|
2022
|
+
* > xxx=xxx&aaa=
|
|
2023
|
+
*/
|
|
2024
|
+
serialize($form) {
|
|
2025
|
+
const elements = $form.elements;
|
|
2026
|
+
let serializedArray = [];
|
|
2027
|
+
for (let i = 0; i < elements.length; i++) {
|
|
2028
|
+
const element = elements[i];
|
|
2029
|
+
if (element.name &&
|
|
2030
|
+
!element.disabled &&
|
|
2031
|
+
(element.checked ||
|
|
2032
|
+
[
|
|
2033
|
+
"text",
|
|
2034
|
+
"hidden",
|
|
2035
|
+
"password",
|
|
2036
|
+
"textarea",
|
|
2037
|
+
"select-one",
|
|
2038
|
+
"select-multiple",
|
|
2039
|
+
].includes(element.type))) {
|
|
2040
|
+
if (element.type === "select-multiple") {
|
|
2041
|
+
for (let j = 0; j < element.options.length; j++) {
|
|
2042
|
+
if (element.options[j].selected) {
|
|
2043
|
+
serializedArray.push({
|
|
2044
|
+
name: element.name,
|
|
2045
|
+
value: element.options[j].value,
|
|
2046
|
+
});
|
|
2047
|
+
}
|
|
2048
|
+
}
|
|
2049
|
+
}
|
|
2050
|
+
else {
|
|
2051
|
+
serializedArray.push({ name: element.name, value: element.value });
|
|
2052
|
+
}
|
|
2053
|
+
}
|
|
2054
|
+
}
|
|
2055
|
+
return serializedArray
|
|
2056
|
+
.map((item) => `${encodeURIComponent(item.name)}=${encodeURIComponent(item.value)}`)
|
|
2057
|
+
.join("&");
|
|
2058
|
+
}
|
|
1764
2059
|
/**
|
|
1765
2060
|
* 显示元素
|
|
1766
2061
|
* @param target 当前元素
|
|
2062
|
+
* @param checkVisiblie 是否检测元素是否显示
|
|
2063
|
+
* + true (默认)如果检测到还未显示,则强制使用display: unset !important;
|
|
2064
|
+
* + false 不检测,直接设置display属性为空
|
|
1767
2065
|
* @example
|
|
1768
2066
|
* // 显示a.xx元素
|
|
1769
2067
|
* DOMUtils.show(document.querySelector("a.xx"))
|
|
1770
2068
|
* DOMUtils.show(document.querySelectorAll("a.xx"))
|
|
1771
2069
|
* DOMUtils.show("a.xx")
|
|
1772
2070
|
*/
|
|
1773
|
-
show(target) {
|
|
2071
|
+
show(target, checkVisiblie = true) {
|
|
1774
2072
|
let DOMUtilsContext = this;
|
|
1775
2073
|
if (target == null) {
|
|
1776
2074
|
return;
|
|
@@ -1781,28 +2079,33 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1781
2079
|
if (target instanceof NodeList || target instanceof Array) {
|
|
1782
2080
|
target = target;
|
|
1783
2081
|
for (const element of target) {
|
|
1784
|
-
DOMUtilsContext.show(element);
|
|
2082
|
+
DOMUtilsContext.show(element, checkVisiblie);
|
|
1785
2083
|
}
|
|
1786
2084
|
}
|
|
1787
2085
|
else {
|
|
1788
2086
|
target = target;
|
|
1789
2087
|
target.style.display = "";
|
|
1790
|
-
if (
|
|
1791
|
-
|
|
1792
|
-
|
|
2088
|
+
if (checkVisiblie) {
|
|
2089
|
+
if (!DOMUtilsCommonUtils.isShow(target)) {
|
|
2090
|
+
/* 仍然是不显示,尝试使用强覆盖 */
|
|
2091
|
+
target.style.setProperty("display", "unset", "important");
|
|
2092
|
+
}
|
|
1793
2093
|
}
|
|
1794
2094
|
}
|
|
1795
2095
|
}
|
|
1796
2096
|
/**
|
|
1797
2097
|
* 隐藏元素
|
|
1798
2098
|
* @param target 当前元素
|
|
2099
|
+
* @param checkVisiblie 是否检测元素是否显示
|
|
2100
|
+
* + true (默认)如果检测到显示,则强制使用display: none !important;
|
|
2101
|
+
* + false 不检测,直接设置display属性为none
|
|
1799
2102
|
* @example
|
|
1800
2103
|
* // 隐藏a.xx元素
|
|
1801
2104
|
* DOMUtils.hide(document.querySelector("a.xx"))
|
|
1802
2105
|
* DOMUtils.hide(document.querySelectorAll("a.xx"))
|
|
1803
2106
|
* DOMUtils.hide("a.xx")
|
|
1804
2107
|
*/
|
|
1805
|
-
hide(target) {
|
|
2108
|
+
hide(target, checkVisiblie = true) {
|
|
1806
2109
|
let DOMUtilsContext = this;
|
|
1807
2110
|
if (target == null) {
|
|
1808
2111
|
return;
|
|
@@ -1813,15 +2116,17 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1813
2116
|
if (target instanceof NodeList || target instanceof Array) {
|
|
1814
2117
|
target = target;
|
|
1815
2118
|
for (const element of target) {
|
|
1816
|
-
DOMUtilsContext.hide(element);
|
|
2119
|
+
DOMUtilsContext.hide(element, checkVisiblie);
|
|
1817
2120
|
}
|
|
1818
2121
|
}
|
|
1819
2122
|
else {
|
|
1820
2123
|
target = target;
|
|
1821
2124
|
target.style.display = "none";
|
|
1822
|
-
if (
|
|
1823
|
-
|
|
1824
|
-
|
|
2125
|
+
if (checkVisiblie) {
|
|
2126
|
+
if (DOMUtilsCommonUtils.isShow(target)) {
|
|
2127
|
+
/* 仍然是显示,尝试使用强覆盖 */
|
|
2128
|
+
target.style.setProperty("display", "none", "important");
|
|
2129
|
+
}
|
|
1825
2130
|
}
|
|
1826
2131
|
}
|
|
1827
2132
|
}
|
|
@@ -1845,9 +2150,15 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1845
2150
|
}
|
|
1846
2151
|
let DOMUtilsContext = this;
|
|
1847
2152
|
if (typeof element === "string") {
|
|
1848
|
-
element = DOMUtilsContext.windowApi.document.
|
|
2153
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
2154
|
+
}
|
|
2155
|
+
if (isNodeList(element)) {
|
|
2156
|
+
// 设置
|
|
2157
|
+
element.forEach(($ele) => {
|
|
2158
|
+
DOMUtilsContext.fadeIn($ele, duration, callback);
|
|
2159
|
+
});
|
|
2160
|
+
return;
|
|
1849
2161
|
}
|
|
1850
|
-
element = element;
|
|
1851
2162
|
element.style.opacity = "0";
|
|
1852
2163
|
element.style.display = "";
|
|
1853
2164
|
let start = null;
|
|
@@ -1890,9 +2201,15 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1890
2201
|
return;
|
|
1891
2202
|
}
|
|
1892
2203
|
if (typeof element === "string") {
|
|
1893
|
-
element = DOMUtilsContext.windowApi.document.
|
|
2204
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
2205
|
+
}
|
|
2206
|
+
if (isNodeList(element)) {
|
|
2207
|
+
// 设置
|
|
2208
|
+
element.forEach(($ele) => {
|
|
2209
|
+
DOMUtilsContext.fadeOut($ele, duration, callback);
|
|
2210
|
+
});
|
|
2211
|
+
return;
|
|
1894
2212
|
}
|
|
1895
|
-
element = element;
|
|
1896
2213
|
element.style.opacity = "1";
|
|
1897
2214
|
let start = null;
|
|
1898
2215
|
let timer = null;
|
|
@@ -1918,24 +2235,34 @@ class DOMUtils extends DOMUtilsEvent {
|
|
|
1918
2235
|
/**
|
|
1919
2236
|
* 切换元素的显示和隐藏状态
|
|
1920
2237
|
* @param element 当前元素
|
|
2238
|
+
* @param checkVisiblie 是否检测元素是否显示
|
|
1921
2239
|
* @example
|
|
1922
2240
|
* // 如果元素a.xx当前是隐藏,则显示,如果是显示,则隐藏
|
|
1923
2241
|
* DOMUtils.toggle(document.querySelector("a.xx"))
|
|
1924
2242
|
* DOMUtils.toggle("a.xx")
|
|
1925
2243
|
*/
|
|
1926
|
-
toggle(element) {
|
|
2244
|
+
toggle(element, checkVisiblie) {
|
|
1927
2245
|
let DOMUtilsContext = this;
|
|
1928
2246
|
if (typeof element === "string") {
|
|
1929
|
-
element = DOMUtilsContext.windowApi.document.
|
|
2247
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1930
2248
|
}
|
|
1931
2249
|
if (element == null) {
|
|
1932
2250
|
return;
|
|
1933
2251
|
}
|
|
1934
|
-
if (
|
|
1935
|
-
|
|
2252
|
+
if (isNodeList(element)) {
|
|
2253
|
+
// 设置
|
|
2254
|
+
element.forEach(($ele) => {
|
|
2255
|
+
DOMUtilsContext.toggle($ele);
|
|
2256
|
+
});
|
|
2257
|
+
return;
|
|
2258
|
+
}
|
|
2259
|
+
if (DOMUtilsContext.windowApi.globalThis
|
|
2260
|
+
.getComputedStyle(element)
|
|
2261
|
+
.getPropertyValue("display") === "none") {
|
|
2262
|
+
DOMUtilsContext.show(element, checkVisiblie);
|
|
1936
2263
|
}
|
|
1937
2264
|
else {
|
|
1938
|
-
DOMUtilsContext.hide(element);
|
|
2265
|
+
DOMUtilsContext.hide(element, checkVisiblie);
|
|
1939
2266
|
}
|
|
1940
2267
|
}
|
|
1941
2268
|
/**
|