@whitesev/domutils 1.3.4 → 1.3.6
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 +466 -98
- package/dist/index.amd.js.map +1 -1
- package/dist/index.cjs.js +466 -98
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +466 -98
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +466 -98
- package/dist/index.iife.js.map +1 -1
- package/dist/index.system.js +466 -98
- package/dist/index.system.js.map +1 -1
- package/dist/index.umd.js +466 -98
- package/dist/index.umd.js.map +1 -1
- package/dist/types/src/DOMUtils.d.ts +60 -39
- package/dist/types/src/DOMUtilsEvent.d.ts +52 -13
- package/dist/types/src/types/global.d.ts +6 -0
- package/package.json +1 -1
- package/src/DOMUtils.ts +459 -166
- package/src/DOMUtilsEvent.ts +197 -42
- package/src/types/global.d.ts +6 -0
package/dist/index.iife.js
CHANGED
|
@@ -596,11 +596,18 @@ var DOMUtils = (function () {
|
|
|
596
596
|
click(element, handler, details, useDispatchToTriggerEvent) {
|
|
597
597
|
let DOMUtilsContext = this;
|
|
598
598
|
if (typeof element === "string") {
|
|
599
|
-
element = DOMUtilsContext.windowApi.document.
|
|
599
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
600
600
|
}
|
|
601
601
|
if (element == null) {
|
|
602
602
|
return;
|
|
603
603
|
}
|
|
604
|
+
if (isNodeList(element)) {
|
|
605
|
+
// 设置
|
|
606
|
+
element.forEach(($ele) => {
|
|
607
|
+
DOMUtilsContext.click($ele, handler, details, useDispatchToTriggerEvent);
|
|
608
|
+
});
|
|
609
|
+
return;
|
|
610
|
+
}
|
|
604
611
|
if (handler == null) {
|
|
605
612
|
DOMUtilsContext.trigger(element, "click", details, useDispatchToTriggerEvent);
|
|
606
613
|
}
|
|
@@ -630,6 +637,13 @@ var DOMUtils = (function () {
|
|
|
630
637
|
if (element == null) {
|
|
631
638
|
return;
|
|
632
639
|
}
|
|
640
|
+
if (isNodeList(element)) {
|
|
641
|
+
// 设置
|
|
642
|
+
element.forEach(($ele) => {
|
|
643
|
+
DOMUtilsContext.focus($ele, handler, details, useDispatchToTriggerEvent);
|
|
644
|
+
});
|
|
645
|
+
return;
|
|
646
|
+
}
|
|
633
647
|
if (handler === null) {
|
|
634
648
|
DOMUtilsContext.trigger(element, "blur", details, useDispatchToTriggerEvent);
|
|
635
649
|
}
|
|
@@ -654,11 +668,18 @@ var DOMUtils = (function () {
|
|
|
654
668
|
focus(element, handler, details, useDispatchToTriggerEvent) {
|
|
655
669
|
let DOMUtilsContext = this;
|
|
656
670
|
if (typeof element === "string") {
|
|
657
|
-
element = DOMUtilsContext.windowApi.document.
|
|
671
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
658
672
|
}
|
|
659
673
|
if (element == null) {
|
|
660
674
|
return;
|
|
661
675
|
}
|
|
676
|
+
if (isNodeList(element)) {
|
|
677
|
+
// 设置
|
|
678
|
+
element.forEach(($ele) => {
|
|
679
|
+
DOMUtilsContext.focus($ele, handler, details, useDispatchToTriggerEvent);
|
|
680
|
+
});
|
|
681
|
+
return;
|
|
682
|
+
}
|
|
662
683
|
if (handler == null) {
|
|
663
684
|
DOMUtilsContext.trigger(element, "focus", details, useDispatchToTriggerEvent);
|
|
664
685
|
}
|
|
@@ -683,18 +704,25 @@ var DOMUtils = (function () {
|
|
|
683
704
|
hover(element, handler, option) {
|
|
684
705
|
let DOMUtilsContext = this;
|
|
685
706
|
if (typeof element === "string") {
|
|
686
|
-
element = DOMUtilsContext.windowApi.document.
|
|
707
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
687
708
|
}
|
|
688
709
|
if (element == null) {
|
|
689
710
|
return;
|
|
690
711
|
}
|
|
712
|
+
if (isNodeList(element)) {
|
|
713
|
+
// 设置
|
|
714
|
+
element.forEach(($ele) => {
|
|
715
|
+
DOMUtilsContext.hover($ele, handler, option);
|
|
716
|
+
});
|
|
717
|
+
return;
|
|
718
|
+
}
|
|
691
719
|
DOMUtilsContext.on(element, "mouseenter", null, handler, option);
|
|
692
720
|
DOMUtilsContext.on(element, "mouseleave", null, handler, option);
|
|
693
721
|
}
|
|
694
722
|
/**
|
|
695
723
|
* 当按键松开时触发事件
|
|
696
724
|
* keydown - > keypress - > keyup
|
|
697
|
-
* @param
|
|
725
|
+
* @param element 当前元素
|
|
698
726
|
* @param handler 事件处理函数
|
|
699
727
|
* @param option 配置
|
|
700
728
|
* @example
|
|
@@ -706,20 +734,27 @@ var DOMUtils = (function () {
|
|
|
706
734
|
* console.log("按键松开");
|
|
707
735
|
* })
|
|
708
736
|
*/
|
|
709
|
-
keyup(
|
|
737
|
+
keyup(element, handler, option) {
|
|
710
738
|
let DOMUtilsContext = this;
|
|
711
|
-
if (
|
|
739
|
+
if (element == null) {
|
|
712
740
|
return;
|
|
713
741
|
}
|
|
714
|
-
if (typeof
|
|
715
|
-
|
|
742
|
+
if (typeof element === "string") {
|
|
743
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
716
744
|
}
|
|
717
|
-
|
|
745
|
+
if (isNodeList(element)) {
|
|
746
|
+
// 设置
|
|
747
|
+
element.forEach(($ele) => {
|
|
748
|
+
DOMUtilsContext.keyup($ele, handler, option);
|
|
749
|
+
});
|
|
750
|
+
return;
|
|
751
|
+
}
|
|
752
|
+
DOMUtilsContext.on(element, "keyup", null, handler, option);
|
|
718
753
|
}
|
|
719
754
|
/**
|
|
720
755
|
* 当按键按下时触发事件
|
|
721
756
|
* keydown - > keypress - > keyup
|
|
722
|
-
* @param
|
|
757
|
+
* @param element 目标
|
|
723
758
|
* @param handler 事件处理函数
|
|
724
759
|
* @param option 配置
|
|
725
760
|
* @example
|
|
@@ -731,20 +766,27 @@ var DOMUtils = (function () {
|
|
|
731
766
|
* console.log("按键按下");
|
|
732
767
|
* })
|
|
733
768
|
*/
|
|
734
|
-
keydown(
|
|
769
|
+
keydown(element, handler, option) {
|
|
735
770
|
let DOMUtilsContext = this;
|
|
736
|
-
if (
|
|
771
|
+
if (element == null) {
|
|
737
772
|
return;
|
|
738
773
|
}
|
|
739
|
-
if (typeof
|
|
740
|
-
|
|
774
|
+
if (typeof element === "string") {
|
|
775
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
741
776
|
}
|
|
742
|
-
|
|
777
|
+
if (isNodeList(element)) {
|
|
778
|
+
// 设置
|
|
779
|
+
element.forEach(($ele) => {
|
|
780
|
+
DOMUtilsContext.keydown($ele, handler, option);
|
|
781
|
+
});
|
|
782
|
+
return;
|
|
783
|
+
}
|
|
784
|
+
DOMUtilsContext.on(element, "keydown", null, handler, option);
|
|
743
785
|
}
|
|
744
786
|
/**
|
|
745
787
|
* 当按键按下时触发事件
|
|
746
788
|
* keydown - > keypress - > keyup
|
|
747
|
-
* @param
|
|
789
|
+
* @param element 目标
|
|
748
790
|
* @param handler 事件处理函数
|
|
749
791
|
* @param option 配置
|
|
750
792
|
* @example
|
|
@@ -756,20 +798,27 @@ var DOMUtils = (function () {
|
|
|
756
798
|
* console.log("按键按下");
|
|
757
799
|
* })
|
|
758
800
|
*/
|
|
759
|
-
keypress(
|
|
801
|
+
keypress(element, handler, option) {
|
|
760
802
|
let DOMUtilsContext = this;
|
|
761
|
-
if (
|
|
803
|
+
if (element == null) {
|
|
762
804
|
return;
|
|
763
805
|
}
|
|
764
|
-
if (typeof
|
|
765
|
-
|
|
806
|
+
if (typeof element === "string") {
|
|
807
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
808
|
+
}
|
|
809
|
+
if (isNodeList(element)) {
|
|
810
|
+
// 设置
|
|
811
|
+
element.forEach(($ele) => {
|
|
812
|
+
DOMUtilsContext.keypress($ele, handler, option);
|
|
813
|
+
});
|
|
814
|
+
return;
|
|
766
815
|
}
|
|
767
|
-
DOMUtilsContext.on(
|
|
816
|
+
DOMUtilsContext.on(element, "keypress", null, handler, option);
|
|
768
817
|
}
|
|
769
818
|
/**
|
|
770
819
|
* 监听某个元素键盘按键事件或window全局按键事件
|
|
771
820
|
* 按下有值的键时触发,按下Ctrl\Alt\Shift\Meta是无值键。按下先触发keydown事件,再触发keypress事件。
|
|
772
|
-
* @param
|
|
821
|
+
* @param element 需要监听的对象,可以是全局Window或者某个元素
|
|
773
822
|
* @param eventName 事件名,默认keypress
|
|
774
823
|
* @param callback 自己定义的回调事件,参数1为当前的key,参数2为组合按键,数组类型,包含ctrl、shift、alt和meta(win键或mac的cmd键)
|
|
775
824
|
* @param options 监听事件的配置
|
|
@@ -829,7 +878,11 @@ var DOMUtils = (function () {
|
|
|
829
878
|
搜索 170
|
|
830
879
|
收藏 171
|
|
831
880
|
**/
|
|
832
|
-
listenKeyboard(
|
|
881
|
+
listenKeyboard(element, eventName = "keypress", callback, options) {
|
|
882
|
+
let DOMUtilsContext = this;
|
|
883
|
+
if (typeof element === "string") {
|
|
884
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
885
|
+
}
|
|
833
886
|
let keyboardEventCallBack = function (event) {
|
|
834
887
|
/** 键名 */
|
|
835
888
|
let keyName = event.key || event.code;
|
|
@@ -853,29 +906,90 @@ var DOMUtils = (function () {
|
|
|
853
906
|
callback(keyName, keyValue, otherCodeList, event);
|
|
854
907
|
}
|
|
855
908
|
};
|
|
856
|
-
|
|
909
|
+
DOMUtilsContext.on(element, eventName, keyboardEventCallBack, options);
|
|
857
910
|
return {
|
|
858
911
|
removeListen: () => {
|
|
859
|
-
|
|
912
|
+
DOMUtilsContext.off(element, eventName, keyboardEventCallBack, options);
|
|
860
913
|
},
|
|
861
914
|
};
|
|
862
915
|
}
|
|
916
|
+
selector(selector) {
|
|
917
|
+
return this.selectorAll(selector)[0];
|
|
918
|
+
}
|
|
919
|
+
selectorAll(selector) {
|
|
920
|
+
const context = this;
|
|
921
|
+
selector = selector.trim();
|
|
922
|
+
if (selector.match(/[^\s]{1}:empty$/gi)) {
|
|
923
|
+
// empty 语法
|
|
924
|
+
selector = selector.replace(/:empty$/gi, "");
|
|
925
|
+
return Array.from(context.windowApi.document.querySelectorAll(selector)).filter(($ele) => {
|
|
926
|
+
return $ele?.innerHTML?.trim() === "";
|
|
927
|
+
});
|
|
928
|
+
}
|
|
929
|
+
else if (selector.match(/[^\s]{1}:contains\("(.*)"\)$/gi) ||
|
|
930
|
+
selector.match(/[^\s]{1}:contains\('(.*)'\)$/gi)) {
|
|
931
|
+
// contains 语法
|
|
932
|
+
let textMatch = selector.match(/:contains\(("|')(.*)("|')\)$/i);
|
|
933
|
+
let text = textMatch[2];
|
|
934
|
+
selector = selector.replace(/:contains\(("|')(.*)("|')\)$/gi, "");
|
|
935
|
+
return Array.from(context.windowApi.document.querySelectorAll(selector)).filter(($ele) => {
|
|
936
|
+
// @ts-ignore
|
|
937
|
+
return ($ele?.textContent || $ele?.innerText)?.includes(text);
|
|
938
|
+
});
|
|
939
|
+
}
|
|
940
|
+
else if (selector.match(/[^\s]{1}:regexp\("(.*)"\)$/gi) ||
|
|
941
|
+
selector.match(/[^\s]{1}:regexp\('(.*)'\)$/gi)) {
|
|
942
|
+
// regexp 语法
|
|
943
|
+
let textMatch = selector.match(/:regexp\(("|')(.*)("|')\)$/i);
|
|
944
|
+
let text = textMatch[2];
|
|
945
|
+
let regexp = new RegExp(text);
|
|
946
|
+
selector = selector.replace(/:regexp\(("|')(.*)("|')\)$/gi, "");
|
|
947
|
+
return Array.from(context.windowApi.document.querySelectorAll(selector)).filter(($ele) => {
|
|
948
|
+
// @ts-ignore
|
|
949
|
+
return Boolean(($ele?.textContent || $ele?.innerText)?.match(regexp));
|
|
950
|
+
});
|
|
951
|
+
}
|
|
952
|
+
else {
|
|
953
|
+
// 普通语法
|
|
954
|
+
return Array.from(context.windowApi.document.querySelectorAll(selector));
|
|
955
|
+
}
|
|
956
|
+
}
|
|
863
957
|
}
|
|
864
958
|
|
|
959
|
+
/**
|
|
960
|
+
* 判断是否是元素列表
|
|
961
|
+
* @param $ele
|
|
962
|
+
*/
|
|
963
|
+
const isNodeList = ($ele) => {
|
|
964
|
+
return Array.isArray($ele) || $ele instanceof NodeList;
|
|
965
|
+
};
|
|
865
966
|
class DOMUtils extends DOMUtilsEvent {
|
|
866
967
|
constructor(option) {
|
|
867
968
|
super(option);
|
|
868
969
|
}
|
|
869
970
|
/** 版本号 */
|
|
870
|
-
version = "2024.10.
|
|
971
|
+
version = "2024.10.22";
|
|
871
972
|
attr(element, attrName, attrValue) {
|
|
872
973
|
let DOMUtilsContext = this;
|
|
873
974
|
if (typeof element === "string") {
|
|
874
|
-
element = DOMUtilsContext.windowApi.document.
|
|
975
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
875
976
|
}
|
|
876
977
|
if (element == null) {
|
|
877
978
|
return;
|
|
878
979
|
}
|
|
980
|
+
if (isNodeList(element)) {
|
|
981
|
+
if (attrValue == null) {
|
|
982
|
+
// 获取属性
|
|
983
|
+
return DOMUtilsContext.attr(element[0], attrName, attrValue);
|
|
984
|
+
}
|
|
985
|
+
else {
|
|
986
|
+
// 设置属性
|
|
987
|
+
element.forEach(($ele) => {
|
|
988
|
+
DOMUtilsContext.attr($ele, attrName, attrValue);
|
|
989
|
+
});
|
|
990
|
+
return;
|
|
991
|
+
}
|
|
992
|
+
}
|
|
879
993
|
if (attrValue == null) {
|
|
880
994
|
return element.getAttribute(attrName);
|
|
881
995
|
}
|
|
@@ -964,14 +1078,40 @@ var DOMUtils = (function () {
|
|
|
964
1078
|
return propertyValue;
|
|
965
1079
|
}
|
|
966
1080
|
if (typeof element === "string") {
|
|
967
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1081
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
968
1082
|
}
|
|
969
1083
|
if (element == null) {
|
|
970
1084
|
return;
|
|
971
1085
|
}
|
|
1086
|
+
if (isNodeList(element)) {
|
|
1087
|
+
if (typeof property === "string") {
|
|
1088
|
+
if (value == null) {
|
|
1089
|
+
// 获取属性
|
|
1090
|
+
return DOMUtilsContext.css(element[0], property);
|
|
1091
|
+
}
|
|
1092
|
+
else {
|
|
1093
|
+
// 设置属性
|
|
1094
|
+
element.forEach(($ele) => {
|
|
1095
|
+
DOMUtilsContext.css($ele, property);
|
|
1096
|
+
});
|
|
1097
|
+
return;
|
|
1098
|
+
}
|
|
1099
|
+
}
|
|
1100
|
+
else if (typeof property === "object") {
|
|
1101
|
+
// 设置属性
|
|
1102
|
+
element.forEach(($ele) => {
|
|
1103
|
+
DOMUtilsContext.css($ele, property);
|
|
1104
|
+
});
|
|
1105
|
+
return;
|
|
1106
|
+
}
|
|
1107
|
+
else ;
|
|
1108
|
+
return;
|
|
1109
|
+
}
|
|
972
1110
|
if (typeof property === "string") {
|
|
973
1111
|
if (value == null) {
|
|
974
|
-
return
|
|
1112
|
+
return DOMUtilsContext.windowApi.globalThis
|
|
1113
|
+
.getComputedStyle(element)
|
|
1114
|
+
.getPropertyValue(property);
|
|
975
1115
|
}
|
|
976
1116
|
else {
|
|
977
1117
|
if (value === "string" && value.includes("!important")) {
|
|
@@ -995,15 +1135,29 @@ var DOMUtils = (function () {
|
|
|
995
1135
|
}
|
|
996
1136
|
}
|
|
997
1137
|
}
|
|
1138
|
+
else ;
|
|
998
1139
|
}
|
|
999
1140
|
text(element, text) {
|
|
1000
1141
|
let DOMUtilsContext = this;
|
|
1001
1142
|
if (typeof element === "string") {
|
|
1002
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1143
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1003
1144
|
}
|
|
1004
1145
|
if (element == null) {
|
|
1005
1146
|
return;
|
|
1006
1147
|
}
|
|
1148
|
+
if (isNodeList(element)) {
|
|
1149
|
+
if (text == null) {
|
|
1150
|
+
// 获取
|
|
1151
|
+
return DOMUtilsContext.text(element[0]);
|
|
1152
|
+
}
|
|
1153
|
+
else {
|
|
1154
|
+
// 设置
|
|
1155
|
+
element.forEach(($ele) => {
|
|
1156
|
+
DOMUtilsContext.text($ele, text);
|
|
1157
|
+
});
|
|
1158
|
+
}
|
|
1159
|
+
return;
|
|
1160
|
+
}
|
|
1007
1161
|
if (text == null) {
|
|
1008
1162
|
return element.textContent || element.innerText;
|
|
1009
1163
|
}
|
|
@@ -1022,15 +1176,30 @@ var DOMUtils = (function () {
|
|
|
1022
1176
|
html(element, html) {
|
|
1023
1177
|
let DOMUtilsContext = this;
|
|
1024
1178
|
if (typeof element === "string") {
|
|
1025
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1179
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1026
1180
|
}
|
|
1027
1181
|
if (element == null) {
|
|
1028
1182
|
return;
|
|
1029
1183
|
}
|
|
1184
|
+
if (isNodeList(element)) {
|
|
1185
|
+
if (html == null) {
|
|
1186
|
+
// 获取
|
|
1187
|
+
return DOMUtilsContext.html(element[0]);
|
|
1188
|
+
}
|
|
1189
|
+
else {
|
|
1190
|
+
// 设置
|
|
1191
|
+
element.forEach(($ele) => {
|
|
1192
|
+
DOMUtilsContext.html($ele, html);
|
|
1193
|
+
});
|
|
1194
|
+
}
|
|
1195
|
+
return;
|
|
1196
|
+
}
|
|
1030
1197
|
if (html == null) {
|
|
1198
|
+
// 获取
|
|
1031
1199
|
return element.innerHTML;
|
|
1032
1200
|
}
|
|
1033
1201
|
else {
|
|
1202
|
+
// 设置
|
|
1034
1203
|
if (html instanceof Element) {
|
|
1035
1204
|
html = html.innerHTML;
|
|
1036
1205
|
}
|
|
@@ -1053,7 +1222,7 @@ var DOMUtils = (function () {
|
|
|
1053
1222
|
recovery();
|
|
1054
1223
|
return transformInfo;
|
|
1055
1224
|
}
|
|
1056
|
-
let elementTransform = getComputedStyle(element).transform;
|
|
1225
|
+
let elementTransform = DOMUtilsContext.windowApi.globalThis.getComputedStyle(element).transform;
|
|
1057
1226
|
if (elementTransform != null &&
|
|
1058
1227
|
elementTransform !== "none" &&
|
|
1059
1228
|
elementTransform !== "") {
|
|
@@ -1077,12 +1246,26 @@ var DOMUtils = (function () {
|
|
|
1077
1246
|
val(element, value) {
|
|
1078
1247
|
let DOMUtilsContext = this;
|
|
1079
1248
|
if (typeof element === "string") {
|
|
1080
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1249
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1081
1250
|
}
|
|
1082
1251
|
if (element == null) {
|
|
1083
1252
|
return;
|
|
1084
1253
|
}
|
|
1254
|
+
if (isNodeList(element)) {
|
|
1255
|
+
if (value == null) {
|
|
1256
|
+
// 获取
|
|
1257
|
+
return DOMUtilsContext.val(element[0]);
|
|
1258
|
+
}
|
|
1259
|
+
else {
|
|
1260
|
+
// 设置
|
|
1261
|
+
element.forEach(($ele) => {
|
|
1262
|
+
DOMUtilsContext.val($ele, value);
|
|
1263
|
+
});
|
|
1264
|
+
}
|
|
1265
|
+
return;
|
|
1266
|
+
}
|
|
1085
1267
|
if (value == null) {
|
|
1268
|
+
// 获取
|
|
1086
1269
|
if (element.localName === "input" &&
|
|
1087
1270
|
(element.type === "checkbox" || element.type === "radio")) {
|
|
1088
1271
|
return element.checked;
|
|
@@ -1092,6 +1275,7 @@ var DOMUtils = (function () {
|
|
|
1092
1275
|
}
|
|
1093
1276
|
}
|
|
1094
1277
|
else {
|
|
1278
|
+
// 设置
|
|
1095
1279
|
if (element.localName === "input" &&
|
|
1096
1280
|
(element.type === "checkbox" || element.type === "radio")) {
|
|
1097
1281
|
element.checked = !!value;
|
|
@@ -1103,17 +1287,30 @@ var DOMUtils = (function () {
|
|
|
1103
1287
|
}
|
|
1104
1288
|
prop(element, propName, propValue) {
|
|
1105
1289
|
let DOMUtilsContext = this;
|
|
1290
|
+
if (typeof element === "string") {
|
|
1291
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1292
|
+
}
|
|
1106
1293
|
if (element == null) {
|
|
1107
1294
|
return;
|
|
1108
1295
|
}
|
|
1109
|
-
if (
|
|
1110
|
-
|
|
1296
|
+
if (isNodeList(element)) {
|
|
1297
|
+
if (propValue == null) {
|
|
1298
|
+
// 获取
|
|
1299
|
+
return DOMUtilsContext.prop(element[0], propName);
|
|
1300
|
+
}
|
|
1301
|
+
else {
|
|
1302
|
+
// 设置
|
|
1303
|
+
element.forEach(($ele) => {
|
|
1304
|
+
DOMUtilsContext.prop($ele, propName, propValue);
|
|
1305
|
+
});
|
|
1306
|
+
}
|
|
1307
|
+
return;
|
|
1111
1308
|
}
|
|
1112
1309
|
if (propValue == null) {
|
|
1113
|
-
return element
|
|
1310
|
+
return Reflect.get(element, propName);
|
|
1114
1311
|
}
|
|
1115
1312
|
else {
|
|
1116
|
-
element
|
|
1313
|
+
Reflect.set(element, propName, propValue);
|
|
1117
1314
|
}
|
|
1118
1315
|
}
|
|
1119
1316
|
/**
|
|
@@ -1128,11 +1325,18 @@ var DOMUtils = (function () {
|
|
|
1128
1325
|
removeAttr(element, attrName) {
|
|
1129
1326
|
let DOMUtilsContext = this;
|
|
1130
1327
|
if (typeof element === "string") {
|
|
1131
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1328
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1132
1329
|
}
|
|
1133
1330
|
if (element == null) {
|
|
1134
1331
|
return;
|
|
1135
1332
|
}
|
|
1333
|
+
if (isNodeList(element)) {
|
|
1334
|
+
// 设置
|
|
1335
|
+
element.forEach(($ele) => {
|
|
1336
|
+
DOMUtilsContext.removeAttr($ele, attrName);
|
|
1337
|
+
});
|
|
1338
|
+
return;
|
|
1339
|
+
}
|
|
1136
1340
|
element.removeAttribute(attrName);
|
|
1137
1341
|
}
|
|
1138
1342
|
/**
|
|
@@ -1147,15 +1351,30 @@ var DOMUtils = (function () {
|
|
|
1147
1351
|
removeClass(element, className) {
|
|
1148
1352
|
let DOMUtilsContext = this;
|
|
1149
1353
|
if (typeof element === "string") {
|
|
1150
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1354
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1151
1355
|
}
|
|
1152
1356
|
if (element == null) {
|
|
1153
1357
|
return;
|
|
1154
1358
|
}
|
|
1155
|
-
if (
|
|
1359
|
+
if (isNodeList(element)) {
|
|
1360
|
+
// 设置
|
|
1361
|
+
element.forEach(($ele) => {
|
|
1362
|
+
DOMUtilsContext.removeClass($ele, className);
|
|
1363
|
+
});
|
|
1156
1364
|
return;
|
|
1157
1365
|
}
|
|
1158
|
-
|
|
1366
|
+
if (className == null) {
|
|
1367
|
+
// 清空全部className
|
|
1368
|
+
element.className = "";
|
|
1369
|
+
}
|
|
1370
|
+
else {
|
|
1371
|
+
if (!Array.isArray(className)) {
|
|
1372
|
+
className = className.split(" ");
|
|
1373
|
+
}
|
|
1374
|
+
className.forEach((itemClassName) => {
|
|
1375
|
+
element.classList.remove(itemClassName);
|
|
1376
|
+
});
|
|
1377
|
+
}
|
|
1159
1378
|
}
|
|
1160
1379
|
/**
|
|
1161
1380
|
* 移除元素的属性
|
|
@@ -1169,11 +1388,18 @@ var DOMUtils = (function () {
|
|
|
1169
1388
|
removeProp(element, propName) {
|
|
1170
1389
|
let DOMUtilsContext = this;
|
|
1171
1390
|
if (typeof element === "string") {
|
|
1172
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1391
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1173
1392
|
}
|
|
1174
1393
|
if (element == null) {
|
|
1175
1394
|
return;
|
|
1176
1395
|
}
|
|
1396
|
+
if (isNodeList(element)) {
|
|
1397
|
+
// 设置
|
|
1398
|
+
element.forEach(($ele) => {
|
|
1399
|
+
DOMUtilsContext.removeProp($ele, propName);
|
|
1400
|
+
});
|
|
1401
|
+
return;
|
|
1402
|
+
}
|
|
1177
1403
|
DOMUtilsCommonUtils.delete(element, propName);
|
|
1178
1404
|
}
|
|
1179
1405
|
/**
|
|
@@ -1188,22 +1414,22 @@ var DOMUtils = (function () {
|
|
|
1188
1414
|
replaceWith(element, newElement) {
|
|
1189
1415
|
let DOMUtilsContext = this;
|
|
1190
1416
|
if (typeof element === "string") {
|
|
1191
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1417
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1192
1418
|
}
|
|
1193
1419
|
if (element == null) {
|
|
1194
1420
|
return;
|
|
1195
1421
|
}
|
|
1196
|
-
if (
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
element.forEach((item) => {
|
|
1201
|
-
DOMUtilsContext.replaceWith(item, newElement);
|
|
1422
|
+
if (isNodeList(element)) {
|
|
1423
|
+
// 设置
|
|
1424
|
+
element.forEach(($ele) => {
|
|
1425
|
+
DOMUtilsContext.replaceWith($ele, newElement);
|
|
1202
1426
|
});
|
|
1427
|
+
return;
|
|
1203
1428
|
}
|
|
1204
|
-
|
|
1205
|
-
|
|
1429
|
+
if (typeof newElement === "string") {
|
|
1430
|
+
newElement = DOMUtilsContext.parseHTML(newElement, false, false);
|
|
1206
1431
|
}
|
|
1432
|
+
element.parentElement.replaceChild(newElement, element);
|
|
1207
1433
|
}
|
|
1208
1434
|
/**
|
|
1209
1435
|
* 给元素添加class
|
|
@@ -1217,12 +1443,27 @@ var DOMUtils = (function () {
|
|
|
1217
1443
|
addClass(element, className) {
|
|
1218
1444
|
let DOMUtilsContext = this;
|
|
1219
1445
|
if (typeof element === "string") {
|
|
1220
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1446
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1221
1447
|
}
|
|
1222
1448
|
if (element == null) {
|
|
1223
1449
|
return;
|
|
1224
1450
|
}
|
|
1225
|
-
element
|
|
1451
|
+
if (isNodeList(element)) {
|
|
1452
|
+
// 设置
|
|
1453
|
+
element.forEach(($ele) => {
|
|
1454
|
+
DOMUtilsContext.addClass($ele, className);
|
|
1455
|
+
});
|
|
1456
|
+
return;
|
|
1457
|
+
}
|
|
1458
|
+
if (!Array.isArray(className)) {
|
|
1459
|
+
className = className.split(" ");
|
|
1460
|
+
}
|
|
1461
|
+
className.forEach((itemClassName) => {
|
|
1462
|
+
if (itemClassName.trim() == "") {
|
|
1463
|
+
return;
|
|
1464
|
+
}
|
|
1465
|
+
element.classList.add(itemClassName);
|
|
1466
|
+
});
|
|
1226
1467
|
}
|
|
1227
1468
|
/**
|
|
1228
1469
|
* 函数在元素内部末尾添加子元素或HTML字符串
|
|
@@ -1236,11 +1477,18 @@ var DOMUtils = (function () {
|
|
|
1236
1477
|
append(element, content) {
|
|
1237
1478
|
let DOMUtilsContext = this;
|
|
1238
1479
|
if (typeof element === "string") {
|
|
1239
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1480
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1240
1481
|
}
|
|
1241
1482
|
if (element == null) {
|
|
1242
1483
|
return;
|
|
1243
1484
|
}
|
|
1485
|
+
if (isNodeList(element)) {
|
|
1486
|
+
// 设置
|
|
1487
|
+
element.forEach(($ele) => {
|
|
1488
|
+
DOMUtilsContext.append($ele, content);
|
|
1489
|
+
});
|
|
1490
|
+
return;
|
|
1491
|
+
}
|
|
1244
1492
|
function elementAppendChild(ele, text) {
|
|
1245
1493
|
if (typeof content === "string") {
|
|
1246
1494
|
ele.insertAdjacentHTML("beforeend", text);
|
|
@@ -1254,7 +1502,7 @@ var DOMUtils = (function () {
|
|
|
1254
1502
|
let fragment = DOMUtilsContext.windowApi.document.createDocumentFragment();
|
|
1255
1503
|
content.forEach((ele) => {
|
|
1256
1504
|
if (typeof ele === "string") {
|
|
1257
|
-
ele =
|
|
1505
|
+
ele = DOMUtilsContext.parseHTML(ele, true, false);
|
|
1258
1506
|
}
|
|
1259
1507
|
fragment.appendChild(ele);
|
|
1260
1508
|
});
|
|
@@ -1276,11 +1524,18 @@ var DOMUtils = (function () {
|
|
|
1276
1524
|
prepend(element, content) {
|
|
1277
1525
|
let DOMUtilsContext = this;
|
|
1278
1526
|
if (typeof element === "string") {
|
|
1279
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1527
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1280
1528
|
}
|
|
1281
1529
|
if (element == null) {
|
|
1282
1530
|
return;
|
|
1283
1531
|
}
|
|
1532
|
+
if (isNodeList(element)) {
|
|
1533
|
+
// 设置
|
|
1534
|
+
element.forEach(($ele) => {
|
|
1535
|
+
DOMUtilsContext.prepend($ele, content);
|
|
1536
|
+
});
|
|
1537
|
+
return;
|
|
1538
|
+
}
|
|
1284
1539
|
if (typeof content === "string") {
|
|
1285
1540
|
element.insertAdjacentHTML("afterbegin", content);
|
|
1286
1541
|
}
|
|
@@ -1306,11 +1561,18 @@ var DOMUtils = (function () {
|
|
|
1306
1561
|
after(element, content) {
|
|
1307
1562
|
let DOMUtilsContext = this;
|
|
1308
1563
|
if (typeof element === "string") {
|
|
1309
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1564
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1310
1565
|
}
|
|
1311
1566
|
if (element == null) {
|
|
1312
1567
|
return;
|
|
1313
1568
|
}
|
|
1569
|
+
if (isNodeList(element)) {
|
|
1570
|
+
// 设置
|
|
1571
|
+
element.forEach(($ele) => {
|
|
1572
|
+
DOMUtilsContext.after($ele, content);
|
|
1573
|
+
});
|
|
1574
|
+
return;
|
|
1575
|
+
}
|
|
1314
1576
|
if (typeof content === "string") {
|
|
1315
1577
|
element.insertAdjacentHTML("afterend", content);
|
|
1316
1578
|
}
|
|
@@ -1338,11 +1600,18 @@ var DOMUtils = (function () {
|
|
|
1338
1600
|
before(element, content) {
|
|
1339
1601
|
let DOMUtilsContext = this;
|
|
1340
1602
|
if (typeof element === "string") {
|
|
1341
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1603
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1342
1604
|
}
|
|
1343
1605
|
if (element == null) {
|
|
1344
1606
|
return;
|
|
1345
1607
|
}
|
|
1608
|
+
if (isNodeList(element)) {
|
|
1609
|
+
// 设置
|
|
1610
|
+
element.forEach(($ele) => {
|
|
1611
|
+
DOMUtilsContext.before($ele, content);
|
|
1612
|
+
});
|
|
1613
|
+
return;
|
|
1614
|
+
}
|
|
1346
1615
|
if (typeof content === "string") {
|
|
1347
1616
|
element.insertAdjacentHTML("beforebegin", content);
|
|
1348
1617
|
}
|
|
@@ -1358,30 +1627,28 @@ var DOMUtils = (function () {
|
|
|
1358
1627
|
}
|
|
1359
1628
|
/**
|
|
1360
1629
|
* 移除元素
|
|
1361
|
-
* @param
|
|
1630
|
+
* @param element 目标元素
|
|
1362
1631
|
* @example
|
|
1363
1632
|
* // 元素a.xx前面添加一个元素
|
|
1364
1633
|
* DOMUtils.remove(document.querySelector("a.xx"))
|
|
1365
1634
|
* DOMUtils.remove(document.querySelectorAll("a.xx"))
|
|
1366
1635
|
* DOMUtils.remove("a.xx")
|
|
1367
1636
|
* */
|
|
1368
|
-
remove(
|
|
1637
|
+
remove(element) {
|
|
1369
1638
|
let DOMUtilsContext = this;
|
|
1370
|
-
if (typeof
|
|
1371
|
-
|
|
1639
|
+
if (typeof element === "string") {
|
|
1640
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1372
1641
|
}
|
|
1373
|
-
if (
|
|
1642
|
+
if (element == null) {
|
|
1374
1643
|
return;
|
|
1375
1644
|
}
|
|
1376
|
-
if (
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
}
|
|
1382
|
-
else {
|
|
1383
|
-
target.remove();
|
|
1645
|
+
if (isNodeList(element)) {
|
|
1646
|
+
element.forEach(($ele) => {
|
|
1647
|
+
DOMUtilsContext.remove($ele);
|
|
1648
|
+
});
|
|
1649
|
+
return;
|
|
1384
1650
|
}
|
|
1651
|
+
element.remove();
|
|
1385
1652
|
}
|
|
1386
1653
|
/**
|
|
1387
1654
|
* 移除元素的所有子元素
|
|
@@ -1394,11 +1661,18 @@ var DOMUtils = (function () {
|
|
|
1394
1661
|
empty(element) {
|
|
1395
1662
|
let DOMUtilsContext = this;
|
|
1396
1663
|
if (typeof element === "string") {
|
|
1397
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1664
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1398
1665
|
}
|
|
1399
1666
|
if (element == null) {
|
|
1400
1667
|
return;
|
|
1401
1668
|
}
|
|
1669
|
+
if (isNodeList(element)) {
|
|
1670
|
+
// 设置
|
|
1671
|
+
element.forEach(($ele) => {
|
|
1672
|
+
DOMUtilsContext.empty($ele);
|
|
1673
|
+
});
|
|
1674
|
+
return;
|
|
1675
|
+
}
|
|
1402
1676
|
element.innerHTML = "";
|
|
1403
1677
|
}
|
|
1404
1678
|
/**
|
|
@@ -1429,7 +1703,8 @@ var DOMUtils = (function () {
|
|
|
1429
1703
|
width(element, isShow = false) {
|
|
1430
1704
|
let DOMUtilsContext = this;
|
|
1431
1705
|
if (typeof element === "string") {
|
|
1432
|
-
element =
|
|
1706
|
+
element =
|
|
1707
|
+
DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1433
1708
|
}
|
|
1434
1709
|
if (element == null) {
|
|
1435
1710
|
return;
|
|
@@ -1541,7 +1816,7 @@ var DOMUtils = (function () {
|
|
|
1541
1816
|
}
|
|
1542
1817
|
element = element;
|
|
1543
1818
|
if (isShow || (!isShow && DOMUtilsCommonUtils.isShow(element))) {
|
|
1544
|
-
let style = getComputedStyle(element, null);
|
|
1819
|
+
let style = DOMUtilsContext.windowApi.globalThis.getComputedStyle(element, null);
|
|
1545
1820
|
let marginLeft = DOMUtilsCommonUtils.getStyleValue(style, "marginLeft");
|
|
1546
1821
|
let marginRight = DOMUtilsCommonUtils.getStyleValue(style, "marginRight");
|
|
1547
1822
|
return element.offsetWidth + marginLeft + marginRight;
|
|
@@ -1567,7 +1842,7 @@ var DOMUtils = (function () {
|
|
|
1567
1842
|
}
|
|
1568
1843
|
element = element;
|
|
1569
1844
|
if (isShow || (!isShow && DOMUtilsCommonUtils.isShow(element))) {
|
|
1570
|
-
let style = getComputedStyle(element, null);
|
|
1845
|
+
let style = DOMUtilsContext.windowApi.globalThis.getComputedStyle(element, null);
|
|
1571
1846
|
let marginTop = DOMUtilsCommonUtils.getStyleValue(style, "marginTop");
|
|
1572
1847
|
let marginBottom = DOMUtilsCommonUtils.getStyleValue(style, "marginBottom");
|
|
1573
1848
|
return element.offsetHeight + marginTop + marginBottom;
|
|
@@ -1594,11 +1869,18 @@ var DOMUtils = (function () {
|
|
|
1594
1869
|
animate(element, styles, duration = 1000, callback = null) {
|
|
1595
1870
|
let DOMUtilsContext = this;
|
|
1596
1871
|
if (typeof element === "string") {
|
|
1597
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1872
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1598
1873
|
}
|
|
1599
1874
|
if (element == null) {
|
|
1600
1875
|
return;
|
|
1601
1876
|
}
|
|
1877
|
+
if (isNodeList(element)) {
|
|
1878
|
+
// 设置
|
|
1879
|
+
element.forEach(($ele) => {
|
|
1880
|
+
DOMUtilsContext.animate($ele, styles, duration, callback);
|
|
1881
|
+
});
|
|
1882
|
+
return;
|
|
1883
|
+
}
|
|
1602
1884
|
if (typeof duration !== "number" || duration <= 0) {
|
|
1603
1885
|
throw new TypeError("duration must be a positive number");
|
|
1604
1886
|
}
|
|
@@ -1615,7 +1897,9 @@ var DOMUtils = (function () {
|
|
|
1615
1897
|
let from = {};
|
|
1616
1898
|
let to = {};
|
|
1617
1899
|
for (let prop in styles) {
|
|
1618
|
-
from[prop] =
|
|
1900
|
+
from[prop] =
|
|
1901
|
+
element.style[prop] ||
|
|
1902
|
+
DOMUtilsContext.windowApi.globalThis.getComputedStyle(element)[prop];
|
|
1619
1903
|
to[prop] = styles[prop];
|
|
1620
1904
|
}
|
|
1621
1905
|
let timer = setInterval(function () {
|
|
@@ -1647,18 +1931,26 @@ var DOMUtils = (function () {
|
|
|
1647
1931
|
wrap(element, wrapperHTML) {
|
|
1648
1932
|
let DOMUtilsContext = this;
|
|
1649
1933
|
if (typeof element === "string") {
|
|
1650
|
-
element = DOMUtilsContext.windowApi.document.
|
|
1934
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1651
1935
|
}
|
|
1652
1936
|
if (element == null) {
|
|
1653
1937
|
return;
|
|
1654
1938
|
}
|
|
1939
|
+
if (isNodeList(element)) {
|
|
1940
|
+
// 设置
|
|
1941
|
+
element.forEach(($ele) => {
|
|
1942
|
+
DOMUtilsContext.wrap($ele, wrapperHTML);
|
|
1943
|
+
});
|
|
1944
|
+
return;
|
|
1945
|
+
}
|
|
1655
1946
|
element = element;
|
|
1656
1947
|
// 创建一个新的div元素,并将wrapperHTML作为其innerHTML
|
|
1657
1948
|
let wrapper = DOMUtilsContext.windowApi.document.createElement("div");
|
|
1658
1949
|
wrapper.innerHTML = wrapperHTML;
|
|
1659
1950
|
let wrapperFirstChild = wrapper.firstChild;
|
|
1660
1951
|
// 将要包裹的元素插入目标元素前面
|
|
1661
|
-
element.parentElement
|
|
1952
|
+
let parentElement = element.parentElement;
|
|
1953
|
+
parentElement.insertBefore(wrapperFirstChild, element);
|
|
1662
1954
|
// 将要包裹的元素移动到wrapper中
|
|
1663
1955
|
wrapperFirstChild.appendChild(element);
|
|
1664
1956
|
}
|
|
@@ -1738,6 +2030,8 @@ var DOMUtils = (function () {
|
|
|
1738
2030
|
}
|
|
1739
2031
|
parseHTML(html, useParser = false, isComplete = false) {
|
|
1740
2032
|
let DOMUtilsContext = this;
|
|
2033
|
+
// 去除html前后的空格
|
|
2034
|
+
html = html.trim();
|
|
1741
2035
|
function parseHTMLByDOMParser() {
|
|
1742
2036
|
let parser = new DOMParser();
|
|
1743
2037
|
if (isComplete) {
|
|
@@ -1764,16 +2058,61 @@ var DOMUtils = (function () {
|
|
|
1764
2058
|
return parseHTMLByCreateDom();
|
|
1765
2059
|
}
|
|
1766
2060
|
}
|
|
2061
|
+
/**
|
|
2062
|
+
* 序列化表单元素
|
|
2063
|
+
* @param $form 表单元素
|
|
2064
|
+
* @example
|
|
2065
|
+
* DOMUtils.serialize(document.querySelector("form"))
|
|
2066
|
+
* > xxx=xxx&aaa=
|
|
2067
|
+
*/
|
|
2068
|
+
serialize($form) {
|
|
2069
|
+
const elements = $form.elements;
|
|
2070
|
+
let serializedArray = [];
|
|
2071
|
+
for (let i = 0; i < elements.length; i++) {
|
|
2072
|
+
const element = elements[i];
|
|
2073
|
+
if (element.name &&
|
|
2074
|
+
!element.disabled &&
|
|
2075
|
+
(element.checked ||
|
|
2076
|
+
[
|
|
2077
|
+
"text",
|
|
2078
|
+
"hidden",
|
|
2079
|
+
"password",
|
|
2080
|
+
"textarea",
|
|
2081
|
+
"select-one",
|
|
2082
|
+
"select-multiple",
|
|
2083
|
+
].includes(element.type))) {
|
|
2084
|
+
if (element.type === "select-multiple") {
|
|
2085
|
+
for (let j = 0; j < element.options.length; j++) {
|
|
2086
|
+
if (element.options[j].selected) {
|
|
2087
|
+
serializedArray.push({
|
|
2088
|
+
name: element.name,
|
|
2089
|
+
value: element.options[j].value,
|
|
2090
|
+
});
|
|
2091
|
+
}
|
|
2092
|
+
}
|
|
2093
|
+
}
|
|
2094
|
+
else {
|
|
2095
|
+
serializedArray.push({ name: element.name, value: element.value });
|
|
2096
|
+
}
|
|
2097
|
+
}
|
|
2098
|
+
}
|
|
2099
|
+
return serializedArray
|
|
2100
|
+
.map((item) => `${encodeURIComponent(item.name)}=${encodeURIComponent(item.value)}`)
|
|
2101
|
+
.join("&");
|
|
2102
|
+
}
|
|
1767
2103
|
/**
|
|
1768
2104
|
* 显示元素
|
|
1769
2105
|
* @param target 当前元素
|
|
2106
|
+
* @param checkVisiblie 是否检测元素是否显示
|
|
2107
|
+
* + true (默认)如果检测到还未显示,则强制使用display: unset !important;
|
|
2108
|
+
* + false 不检测,直接设置display属性为空
|
|
1770
2109
|
* @example
|
|
1771
2110
|
* // 显示a.xx元素
|
|
1772
2111
|
* DOMUtils.show(document.querySelector("a.xx"))
|
|
1773
2112
|
* DOMUtils.show(document.querySelectorAll("a.xx"))
|
|
1774
2113
|
* DOMUtils.show("a.xx")
|
|
1775
2114
|
*/
|
|
1776
|
-
show(target) {
|
|
2115
|
+
show(target, checkVisiblie = true) {
|
|
1777
2116
|
let DOMUtilsContext = this;
|
|
1778
2117
|
if (target == null) {
|
|
1779
2118
|
return;
|
|
@@ -1784,28 +2123,33 @@ var DOMUtils = (function () {
|
|
|
1784
2123
|
if (target instanceof NodeList || target instanceof Array) {
|
|
1785
2124
|
target = target;
|
|
1786
2125
|
for (const element of target) {
|
|
1787
|
-
DOMUtilsContext.show(element);
|
|
2126
|
+
DOMUtilsContext.show(element, checkVisiblie);
|
|
1788
2127
|
}
|
|
1789
2128
|
}
|
|
1790
2129
|
else {
|
|
1791
2130
|
target = target;
|
|
1792
2131
|
target.style.display = "";
|
|
1793
|
-
if (
|
|
1794
|
-
|
|
1795
|
-
|
|
2132
|
+
if (checkVisiblie) {
|
|
2133
|
+
if (!DOMUtilsCommonUtils.isShow(target)) {
|
|
2134
|
+
/* 仍然是不显示,尝试使用强覆盖 */
|
|
2135
|
+
target.style.setProperty("display", "unset", "important");
|
|
2136
|
+
}
|
|
1796
2137
|
}
|
|
1797
2138
|
}
|
|
1798
2139
|
}
|
|
1799
2140
|
/**
|
|
1800
2141
|
* 隐藏元素
|
|
1801
2142
|
* @param target 当前元素
|
|
2143
|
+
* @param checkVisiblie 是否检测元素是否显示
|
|
2144
|
+
* + true (默认)如果检测到显示,则强制使用display: none !important;
|
|
2145
|
+
* + false 不检测,直接设置display属性为none
|
|
1802
2146
|
* @example
|
|
1803
2147
|
* // 隐藏a.xx元素
|
|
1804
2148
|
* DOMUtils.hide(document.querySelector("a.xx"))
|
|
1805
2149
|
* DOMUtils.hide(document.querySelectorAll("a.xx"))
|
|
1806
2150
|
* DOMUtils.hide("a.xx")
|
|
1807
2151
|
*/
|
|
1808
|
-
hide(target) {
|
|
2152
|
+
hide(target, checkVisiblie = true) {
|
|
1809
2153
|
let DOMUtilsContext = this;
|
|
1810
2154
|
if (target == null) {
|
|
1811
2155
|
return;
|
|
@@ -1816,15 +2160,17 @@ var DOMUtils = (function () {
|
|
|
1816
2160
|
if (target instanceof NodeList || target instanceof Array) {
|
|
1817
2161
|
target = target;
|
|
1818
2162
|
for (const element of target) {
|
|
1819
|
-
DOMUtilsContext.hide(element);
|
|
2163
|
+
DOMUtilsContext.hide(element, checkVisiblie);
|
|
1820
2164
|
}
|
|
1821
2165
|
}
|
|
1822
2166
|
else {
|
|
1823
2167
|
target = target;
|
|
1824
2168
|
target.style.display = "none";
|
|
1825
|
-
if (
|
|
1826
|
-
|
|
1827
|
-
|
|
2169
|
+
if (checkVisiblie) {
|
|
2170
|
+
if (DOMUtilsCommonUtils.isShow(target)) {
|
|
2171
|
+
/* 仍然是显示,尝试使用强覆盖 */
|
|
2172
|
+
target.style.setProperty("display", "none", "important");
|
|
2173
|
+
}
|
|
1828
2174
|
}
|
|
1829
2175
|
}
|
|
1830
2176
|
}
|
|
@@ -1848,9 +2194,15 @@ var DOMUtils = (function () {
|
|
|
1848
2194
|
}
|
|
1849
2195
|
let DOMUtilsContext = this;
|
|
1850
2196
|
if (typeof element === "string") {
|
|
1851
|
-
element = DOMUtilsContext.windowApi.document.
|
|
2197
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
2198
|
+
}
|
|
2199
|
+
if (isNodeList(element)) {
|
|
2200
|
+
// 设置
|
|
2201
|
+
element.forEach(($ele) => {
|
|
2202
|
+
DOMUtilsContext.fadeIn($ele, duration, callback);
|
|
2203
|
+
});
|
|
2204
|
+
return;
|
|
1852
2205
|
}
|
|
1853
|
-
element = element;
|
|
1854
2206
|
element.style.opacity = "0";
|
|
1855
2207
|
element.style.display = "";
|
|
1856
2208
|
let start = null;
|
|
@@ -1893,9 +2245,15 @@ var DOMUtils = (function () {
|
|
|
1893
2245
|
return;
|
|
1894
2246
|
}
|
|
1895
2247
|
if (typeof element === "string") {
|
|
1896
|
-
element = DOMUtilsContext.windowApi.document.
|
|
2248
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
2249
|
+
}
|
|
2250
|
+
if (isNodeList(element)) {
|
|
2251
|
+
// 设置
|
|
2252
|
+
element.forEach(($ele) => {
|
|
2253
|
+
DOMUtilsContext.fadeOut($ele, duration, callback);
|
|
2254
|
+
});
|
|
2255
|
+
return;
|
|
1897
2256
|
}
|
|
1898
|
-
element = element;
|
|
1899
2257
|
element.style.opacity = "1";
|
|
1900
2258
|
let start = null;
|
|
1901
2259
|
let timer = null;
|
|
@@ -1921,24 +2279,34 @@ var DOMUtils = (function () {
|
|
|
1921
2279
|
/**
|
|
1922
2280
|
* 切换元素的显示和隐藏状态
|
|
1923
2281
|
* @param element 当前元素
|
|
2282
|
+
* @param checkVisiblie 是否检测元素是否显示
|
|
1924
2283
|
* @example
|
|
1925
2284
|
* // 如果元素a.xx当前是隐藏,则显示,如果是显示,则隐藏
|
|
1926
2285
|
* DOMUtils.toggle(document.querySelector("a.xx"))
|
|
1927
2286
|
* DOMUtils.toggle("a.xx")
|
|
1928
2287
|
*/
|
|
1929
|
-
toggle(element) {
|
|
2288
|
+
toggle(element, checkVisiblie) {
|
|
1930
2289
|
let DOMUtilsContext = this;
|
|
1931
2290
|
if (typeof element === "string") {
|
|
1932
|
-
element = DOMUtilsContext.windowApi.document.
|
|
2291
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
1933
2292
|
}
|
|
1934
2293
|
if (element == null) {
|
|
1935
2294
|
return;
|
|
1936
2295
|
}
|
|
1937
|
-
if (
|
|
1938
|
-
|
|
2296
|
+
if (isNodeList(element)) {
|
|
2297
|
+
// 设置
|
|
2298
|
+
element.forEach(($ele) => {
|
|
2299
|
+
DOMUtilsContext.toggle($ele);
|
|
2300
|
+
});
|
|
2301
|
+
return;
|
|
2302
|
+
}
|
|
2303
|
+
if (DOMUtilsContext.windowApi.globalThis
|
|
2304
|
+
.getComputedStyle(element)
|
|
2305
|
+
.getPropertyValue("display") === "none") {
|
|
2306
|
+
DOMUtilsContext.show(element, checkVisiblie);
|
|
1939
2307
|
}
|
|
1940
2308
|
else {
|
|
1941
|
-
DOMUtilsContext.hide(element);
|
|
2309
|
+
DOMUtilsContext.hide(element, checkVisiblie);
|
|
1942
2310
|
}
|
|
1943
2311
|
}
|
|
1944
2312
|
/**
|