@shijiu/jsview-vue 0.9.246 → 0.9.254

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.
Files changed (173) hide show
  1. package/dom/bin/package.json +11 -11
  2. package/dom/browser-root-style.css +21 -21
  3. package/loader/jsview-main.js +41 -41
  4. package/loader/jsview.config.default.js +37 -37
  5. package/loader/jsview.default.config.js +37 -37
  6. package/package.json +6 -6
  7. package/patches/node_modules/@babel/preset-env/lib/available-plugins.js +218 -218
  8. package/patches/node_modules/@vue/cli-plugin-typescript/index.js +100 -100
  9. package/patches/node_modules/@vue/cli-service/lib/commands/serve.js +395 -395
  10. package/patches/node_modules/@vue/cli-service/lib/config/app.js +272 -272
  11. package/patches/node_modules/@vue/cli-service/lib/config/assets.js +70 -70
  12. package/patches/node_modules/@vue/cli-service/lib/config/base.js +212 -212
  13. package/patches/node_modules/postcss-js/objectifier.js +90 -90
  14. package/patches/node_modules/vue-loader/dist/resolveScript.js +70 -70
  15. package/samples/AdvanceMetroWidget/App.vue +122 -122
  16. package/samples/AdvanceMetroWidget/Frame.vue +100 -100
  17. package/samples/AdvanceMetroWidget/Item.vue +57 -57
  18. package/samples/AdvanceMetroWidget/data.js +136 -136
  19. package/samples/AnimPicture/App.vue +223 -223
  20. package/samples/Basic/App.vue +128 -128
  21. package/samples/Basic/components/TitleBar.vue +28 -28
  22. package/samples/Basic/components/anim/AnimGroup.vue +67 -67
  23. package/samples/Basic/components/anim/AnimKeyframeBasic.vue +101 -101
  24. package/samples/Basic/components/anim/AnimKeyframeComposite.vue +52 -52
  25. package/samples/Basic/components/anim/AnimTransition.vue +116 -116
  26. package/samples/Basic/components/div/DivBackground.vue +14 -14
  27. package/samples/Basic/components/div/DivClip.vue +80 -80
  28. package/samples/Basic/components/div/DivCssScoped.vue +26 -26
  29. package/samples/Basic/components/div/DivCssVar.vue +49 -49
  30. package/samples/Basic/components/div/DivGroup1.vue +32 -32
  31. package/samples/Basic/components/div/DivGroup2.vue +40 -40
  32. package/samples/Basic/components/div/DivLayout.vue +11 -11
  33. package/samples/Basic/components/div/DivRadius.vue +46 -46
  34. package/samples/Basic/components/text/TextAlign.vue +47 -47
  35. package/samples/Basic/components/text/TextFontStyle.vue +57 -57
  36. package/samples/Basic/components/text/TextGroup.vue +31 -31
  37. package/samples/Basic/components/text/TextOverflow.vue +77 -77
  38. package/samples/BasicFocusControl/App.vue +124 -124
  39. package/samples/BasicFocusControl/components/BaseBlock.vue +50 -50
  40. package/samples/BasicFocusControl/components/MainArea.vue +97 -97
  41. package/samples/BasicFocusControl/components/MainAreaLeftBlock.vue +20 -20
  42. package/samples/BasicFocusControl/components/MainAreaRightBlock.vue +29 -29
  43. package/samples/BasicFocusControl/components/SideBar.vue +72 -72
  44. package/samples/BasicFocusControl/components/SideBarBlock.vue +29 -29
  45. package/samples/ClassNameDemo/App.vue +119 -119
  46. package/samples/ClassNameDemo/components/ContentItem.vue +252 -252
  47. package/samples/ClassNameDemo/components/LoadingView.vue +43 -43
  48. package/samples/ClassNameDemo/components/TitleView.vue +24 -24
  49. package/samples/ClassNameDemo/data.js +24 -24
  50. package/samples/ColorSpace/App.vue +134 -134
  51. package/samples/DemoHomepage/App.vue +31 -31
  52. package/samples/DemoHomepage/components/BodyFrame.vue +81 -81
  53. package/samples/DemoHomepage/components/Dialog.vue +93 -93
  54. package/samples/DemoHomepage/components/Item.vue +76 -76
  55. package/samples/DemoHomepage/components/TabFrame.vue +86 -86
  56. package/samples/DemoHomepage/router.js +132 -132
  57. package/samples/DemoHomepage/views/Homepage.vue +186 -186
  58. package/samples/FlipCard/App.vue +80 -80
  59. package/samples/FlipCard/FlipCard.vue +123 -123
  60. package/samples/FlipCard/data.js +12 -12
  61. package/samples/FlowMultiWidget/App.vue +90 -90
  62. package/samples/FlowMultiWidget/components/Block.vue +106 -106
  63. package/samples/FlowMultiWidget/components/FlowPage.vue +59 -59
  64. package/samples/FlowMultiWidget/components/Item.vue +102 -102
  65. package/samples/FlowMultiWidget/components/MenuItem.vue +71 -71
  66. package/samples/FlowMultiWidget/components/MyMenu.vue +89 -89
  67. package/samples/FlowMultiWidget/data.js +446 -446
  68. package/samples/HashHistory/App.vue +124 -124
  69. package/samples/HashHistory/components/HorizontalButtonList.vue +113 -113
  70. package/samples/HashHistory/components/Item.vue +73 -73
  71. package/samples/HashHistory/router.js +29 -29
  72. package/samples/HashHistory/views/BasePage.vue +18 -18
  73. package/samples/HashHistory/views/MainPage.vue +67 -67
  74. package/samples/HashHistory/views/SubPage.vue +78 -78
  75. package/samples/HashHistory/views/SubPageFirst.vue +9 -9
  76. package/samples/HashHistory/views/SubPageSecond.vue +9 -9
  77. package/samples/LongImage/App.vue +96 -96
  78. package/samples/LongImage/Button.vue +153 -153
  79. package/samples/LongImage/LongImageScroll.vue +126 -126
  80. package/samples/LongImage/Scroll.vue +15 -15
  81. package/samples/LongText/App.vue +111 -111
  82. package/samples/LongText/Button.vue +153 -153
  83. package/samples/LongText/LongTextScroll.vue +224 -224
  84. package/samples/LongText/Scroll.vue +15 -15
  85. package/samples/Preload/App.vue +145 -145
  86. package/samples/Preload/data.js +22 -22
  87. package/samples/Preload/preloadItem.vue +21 -21
  88. package/samples/QrcodeDemo/App.vue +72 -72
  89. package/samples/SimpleWidgetDemo/App.vue +203 -203
  90. package/samples/SimpleWidgetDemo/Item.vue +82 -82
  91. package/samples/SimpleWidgetDemo/components/ContentItem.vue +411 -411
  92. package/samples/SimpleWidgetDemo/components/MyTab.vue +116 -116
  93. package/samples/SimpleWidgetDemo/data.js +110 -110
  94. package/samples/SprayView/App.vue +269 -269
  95. package/samples/SpriteImage/App.vue +174 -174
  96. package/samples/SpriteImage/images/egg_break.json +116 -116
  97. package/samples/TextBox/App.vue +178 -178
  98. package/samples/TextBox/RenderCenter.vue +108 -108
  99. package/samples/TextBox/RenderLeft.vue +108 -108
  100. package/samples/TextBox/RenderOneLine.vue +119 -119
  101. package/samples/TextBox/RenderRight.vue +106 -106
  102. package/samples/TextShadowDemo/App.vue +97 -97
  103. package/samples/TextureSize/App.vue +141 -141
  104. package/samples/ThrowMoveDemo/AccelerateDemo.vue +117 -117
  105. package/samples/ThrowMoveDemo/App.vue +113 -113
  106. package/samples/ThrowMoveDemo/LRParabolicDemo.vue +115 -115
  107. package/samples/ThrowMoveDemo/TargetDemo.vue +116 -116
  108. package/samples/ThrowMoveDemo/UDParabolicDemo.vue +121 -121
  109. package/samples/TransitPage/App.vue +40 -40
  110. package/samples/VideoDemo/App.vue +137 -137
  111. package/samples/VideoDemo/components/Button.vue +68 -68
  112. package/samples/VideoDemo/components/Controllor.vue +195 -195
  113. package/samples/VideoDemo/components/VideoFrame.vue +152 -152
  114. package/scripts/common.js +115 -92
  115. package/scripts/deploy-fast-pack.js +17 -0
  116. package/scripts/deploy-fast-publish.js +44 -0
  117. package/scripts/{git-commit-empty.js → deploy-git-commit-empty.js} +21 -21
  118. package/scripts/{pre-pack.js → deploy-prepare.js} +56 -39
  119. package/scripts/{install-local-packages.js → jsview-install-local-packages.js} +73 -73
  120. package/scripts/{post-build.js → jsview-post-build.js} +127 -127
  121. package/scripts/{post-install.js → jsview-post-install.js} +78 -78
  122. package/scripts/{run-android.js → jsview-run-android.js} +64 -64
  123. package/scripts/make-js.sh +181 -181
  124. package/utils/JsViewEngineWidget/bin/index.js +1 -1
  125. package/utils/JsViewEngineWidget/bin/package.json +11 -11
  126. package/utils/JsViewVueTools/JsvHashHistory.js +111 -111
  127. package/utils/JsViewVueTools/JsvRuntimeBridge.js +417 -417
  128. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserPreload.vue +80 -80
  129. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserQrcode.vue +147 -147
  130. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserSpray.vue +54 -54
  131. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/ApicDataBase.js +28 -28
  132. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/BrowserApic.vue +123 -123
  133. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/GifData.js +83 -83
  134. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/LoopToolBase.js +25 -25
  135. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/NormalLoopTool.js +61 -61
  136. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/PartLoopTool.js +119 -119
  137. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/Viewer.js +106 -106
  138. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/WebpData.js +141 -141
  139. package/utils/JsViewVueWidget/BrowserDebugWidget/WidgetLoader.js +20 -20
  140. package/utils/JsViewVueWidget/JsvActorMove/ActorControlBase.js +204 -204
  141. package/utils/JsViewVueWidget/JsvActorMove/JsvActorMove.vue +63 -63
  142. package/utils/JsViewVueWidget/JsvActorMove/JsvActorMoveControl.js +426 -426
  143. package/utils/JsViewVueWidget/JsvActorMove/index.js +12 -12
  144. package/utils/JsViewVueWidget/JsvApic/JsvApic.vue +178 -178
  145. package/utils/JsViewVueWidget/JsvApic/index.js +17 -17
  146. package/utils/JsViewVueWidget/JsvMarquee.vue +196 -196
  147. package/utils/JsViewVueWidget/JsvNinePatch.vue +76 -76
  148. package/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue +350 -350
  149. package/utils/JsViewVueWidget/JsvPreload/index.js +21 -21
  150. package/utils/JsViewVueWidget/JsvQrcode/JsvQrcode.vue +140 -140
  151. package/utils/JsViewVueWidget/JsvQrcode/index.js +18 -18
  152. package/utils/JsViewVueWidget/JsvSpray/JsvSpray.vue +139 -139
  153. package/utils/JsViewVueWidget/JsvSpray/index.js +14 -14
  154. package/utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteAnim.vue +447 -447
  155. package/utils/JsViewVueWidget/JsvSpriteAnim/SpriteController.js +56 -56
  156. package/utils/JsViewVueWidget/JsvSpriteAnim/index.js +6 -6
  157. package/utils/JsViewVueWidget/JsvSwiper/Indicator.vue +34 -34
  158. package/utils/JsViewVueWidget/JsvSwiper/JsvSwiper.vue +494 -494
  159. package/utils/JsViewVueWidget/JsvSwiper/index.js +9 -9
  160. package/utils/JsViewVueWidget/JsvSwiper3D/Indicator.vue +34 -34
  161. package/utils/JsViewVueWidget/JsvSwiper3D/JsvSwiper.vue +403 -403
  162. package/utils/JsViewVueWidget/JsvSwiper3D/index.js +9 -9
  163. package/utils/JsViewVueWidget/JsvTextBox.vue +110 -110
  164. package/utils/JsViewVueWidget/JsvVideo.vue +35 -35
  165. package/vetur.config.js +5 -5
  166. package/.gitmodules +0 -6
  167. package/README.md +0 -15
  168. package/doc/IMPORT_CHANGE_LOG.txt +0 -3
  169. package/doc/about-project-postinstall.md +0 -0
  170. package/doc/git_commit.md +0 -15
  171. package/doc/test_version_up.txt +0 -1
  172. package/scripts/update-version.js +0 -32
  173. package/shijiu-jsview-vue-0.9.246.tgz +0 -0
@@ -1,270 +1,270 @@
1
- <!--
2
- * @Author: ChenChanghua
3
- * @Date: 2021-10-13 11:19:26
4
- * @LastEditors: ChenChanghua
5
- * @LastEditTime: 2021-10-18 14:21:18
6
- * @Description: file content
7
- -->
8
- <script>
9
- import JsvSpray from "jsview/utils/JsViewVueWidget/JsvSpray";
10
- import snow from "./assets/snow.png";
11
- const sprayOk = {
12
- type: 0,
13
- particleNum: 100,
14
- deltaAngle: 180,
15
- deltaWidth: 50,
16
- deltaHeight: 50,
17
- pointSizeMin: 20,
18
- pointSizeMax: 30,
19
- speedMin: 1,
20
- speedMax: 7,
21
- lifeMin: 1000,
22
- lifeMax: 2000,
23
- accelerateX: 0,
24
- accelerateY: 0,
25
- addNumSpeed: 0.001,
26
- enableFade: true,
27
- enableShrink: true,
28
- };
29
-
30
- const sprayRotate = {
31
- type: 1,
32
- particleNum: 100,
33
- deltaAngle: 0,
34
- deltaWidth: 0,
35
- deltaHeight: 50,
36
- pointSizeMin: 10,
37
- pointSizeMax: 20,
38
- speedMin: 5,
39
- speedMax: 10,
40
- lifeMin: 1000,
41
- lifeMax: 3000,
42
- accelerateX: 0,
43
- accelerateY: -100,
44
- addNumSpeed: 0.001,
45
- enableFade: true,
46
- enableShrink: false,
47
- };
48
-
49
- const sprayMove = {
50
- type: 1,
51
- particleNum: 100,
52
- deltaAngle: 20,
53
- deltaWidth: 50,
54
- deltaHeight: 50,
55
- pointSizeMin: 10,
56
- pointSizeMax: 20,
57
- speedMin: 5,
58
- speedMax: 10,
59
- lifeMin: 1000,
60
- lifeMax: 3000,
61
- accelerateX: -50,
62
- accelerateY: -120,
63
- addNumSpeed: 0.001,
64
- enableFade: true,
65
- enableShrink: true,
66
- };
67
-
68
- const sprayCycle = {
69
- type: 1,
70
- particleNum: 200,
71
- deltaAngle: 20,
72
- deltaWidth: 20,
73
- deltaHeight: 20,
74
- pointSizeMin: 10,
75
- pointSizeMax: 20,
76
- speedMin: 0,
77
- speedMax: 0,
78
- lifeMin: 1000,
79
- lifeMax: 3000,
80
- accelerateX: 0,
81
- accelerateY: 0,
82
- addNumSpeed: 0.001,
83
- enableFade: true,
84
- enableShrink: false,
85
- };
86
- export default {
87
- components: {
88
- JsvSpray,
89
- },
90
- data() {
91
- return {
92
- okCount: 0,
93
- };
94
- },
95
- setup() {
96
- return {
97
- sprayOk,
98
- sprayRotate,
99
- sprayMove,
100
- sprayCycle,
101
- snow,
102
- };
103
- },
104
- methods: {
105
- onKeyDown(ev) {
106
- if (ev.keyCode == 8 || ev.keyCode == 27 || ev.keyCode == 10000) {
107
- this.$router?.go(-1); // 有router时,是从DemoHomepage进入,回退
108
- return true;
109
- }
110
- switch (ev.keyCode) {
111
- case 13:
112
- this.okCount++;
113
- break;
114
- }
115
- return true;
116
- },
117
- }
118
- };
119
- </script>
120
-
121
- <template>
122
- <div class="root">
123
- <jsv-focus-block
124
- autoFocus
125
- :onAction="{
126
- onKeyDown: onKeyDown,
127
- }"
128
- >
129
- <div :style="{ top: 400, left: 200 }">
130
- <div class="spray-ok">
131
- <jsv-spray
132
- v-if="okCount > 0"
133
- :key="okCount"
134
- :pointRes="`url(${snow})`"
135
- :sprayStyle="sprayOk"
136
- />
137
- </div>
138
- <div class="describe">
139
- {{ `#摁OK键\n#粒子在方形内生成\n#初速度方向360度随机\n#无外力作用` }}
140
- </div>
141
- </div>
142
- <div :style="{ top: 400, left: 600 }">
143
- <div class="spray-rotate">
144
- <jsv-spray pointRes="rgba(0, 255, 0, 1)" :sprayStyle="sprayRotate" />
145
- </div>
146
- <div class="describe">
147
- {{ `#粒子沿长边随机生成\n#初速度沿长边方向\n#受竖直方向的力作用` }}
148
- </div>
149
- </div>
150
- <div :style="{ top: 400, left: 1000 }">
151
- <div class="spray-move">
152
- <jsv-spray :pointRes="`url(${snow})`" :sprayStyle="sprayMove" />
153
- </div>
154
- <div class="describe">
155
- {{
156
- `#粒子在方形随机生成\n#初速度方向为竖直向上方向正负20度内随机\n#受水平方向和竖直方向的力作用`
157
- }}
158
- </div>
159
- </div>
160
- <div :style="{ top: 20, left: 400 }">
161
- <div :style="{
162
- width: 40,
163
- height: 40,
164
- animation: 'cycle 3s linear infinite',
165
- }">
166
- <jsv-spray :pointRes="`url(${snow})`" :sprayStyle="sprayCycle" />
167
- </div>
168
- <div
169
- :style="{
170
- top: 20,
171
- width: 500,
172
- height: 100,
173
- lineHeight: '100px',
174
- textAlign: 'center',
175
- fontSize: '50px',
176
- color: '#FFFFFF',
177
- }"
178
- >
179
- 粒子效果
180
- </div>
181
- <div class="describe">
182
- {{ `#粒子在方形随机生成\n#初速度为0\n#不受外力` }}
183
- </div>
184
- </div>
185
- </jsv-focus-block>
186
- </div>
187
- </template>
188
-
189
- <style scoped>
190
- @keyframes move-back-force {
191
- 0% {
192
- transform: translate3d(0, 0, 0);
193
- }
194
- 25% {
195
- transform: translate3d(100px, 0, 0);
196
- }
197
- 50% {
198
- transform: translate3d(0, 0, 0);
199
- }
200
- 75% {
201
- transform: translate3d(100px, 0, 0);
202
- }
203
- 100% {
204
- transform: translate3d(0, 0, 0);
205
- }
206
- }
207
-
208
- @keyframes rotate {
209
- from {
210
- transform: rotate3d(0, 0, 1, 0);
211
- }
212
- to {
213
- transform: rotate3d(0, 0, 1, 360deg);
214
- }
215
- }
216
-
217
- @keyframes cycle {
218
- 0% {
219
- transform: translate3d(0, 0, 0);
220
- }
221
- 25% {
222
- transform: translate3d(500px, 0, 0);
223
- }
224
- 50% {
225
- transform: translate3d(500px, 100px, 0);
226
- }
227
- 75% {
228
- transform: translate3d(0, 100px, 0);
229
- }
230
- 100% {
231
- transform: translate3d(0, 0, 0);
232
- }
233
- }
234
- .root {
235
- width: 1920px;
236
- height: 1080px;
237
- background-color: #334c4c;
238
- }
239
-
240
- .spray-ok {
241
- width: 100px;
242
- height: 100px;
243
- background-color: #00ff00;
244
- }
245
- .spray-rotate {
246
- width: 10px;
247
- height: 100px;
248
- background-color: #00ff00;
249
- animation: rotate 3s linear infinite;
250
- }
251
- .spray-move {
252
- width: 100px;
253
- height: 100px;
254
- background-color: #00ff00;
255
- animation: move-back-force 10s linear infinite;
256
- }
257
- .spray-cycle {
258
- width: 40px;
259
- height: 40px;
260
- animation: cycle 3s linear infinite;
261
- }
262
- .describe {
263
- left: 0px;
264
- top: 140px;
265
- width: 250px;
266
- height: 200px;
267
- color: #ffffff;
268
- font-size: 20px;
269
- }
1
+ <!--
2
+ * @Author: ChenChanghua
3
+ * @Date: 2021-10-13 11:19:26
4
+ * @LastEditors: ChenChanghua
5
+ * @LastEditTime: 2021-10-18 14:21:18
6
+ * @Description: file content
7
+ -->
8
+ <script>
9
+ import JsvSpray from "jsview/utils/JsViewVueWidget/JsvSpray";
10
+ import snow from "./assets/snow.png";
11
+ const sprayOk = {
12
+ type: 0,
13
+ particleNum: 100,
14
+ deltaAngle: 180,
15
+ deltaWidth: 50,
16
+ deltaHeight: 50,
17
+ pointSizeMin: 20,
18
+ pointSizeMax: 30,
19
+ speedMin: 1,
20
+ speedMax: 7,
21
+ lifeMin: 1000,
22
+ lifeMax: 2000,
23
+ accelerateX: 0,
24
+ accelerateY: 0,
25
+ addNumSpeed: 0.001,
26
+ enableFade: true,
27
+ enableShrink: true,
28
+ };
29
+
30
+ const sprayRotate = {
31
+ type: 1,
32
+ particleNum: 100,
33
+ deltaAngle: 0,
34
+ deltaWidth: 0,
35
+ deltaHeight: 50,
36
+ pointSizeMin: 10,
37
+ pointSizeMax: 20,
38
+ speedMin: 5,
39
+ speedMax: 10,
40
+ lifeMin: 1000,
41
+ lifeMax: 3000,
42
+ accelerateX: 0,
43
+ accelerateY: -100,
44
+ addNumSpeed: 0.001,
45
+ enableFade: true,
46
+ enableShrink: false,
47
+ };
48
+
49
+ const sprayMove = {
50
+ type: 1,
51
+ particleNum: 100,
52
+ deltaAngle: 20,
53
+ deltaWidth: 50,
54
+ deltaHeight: 50,
55
+ pointSizeMin: 10,
56
+ pointSizeMax: 20,
57
+ speedMin: 5,
58
+ speedMax: 10,
59
+ lifeMin: 1000,
60
+ lifeMax: 3000,
61
+ accelerateX: -50,
62
+ accelerateY: -120,
63
+ addNumSpeed: 0.001,
64
+ enableFade: true,
65
+ enableShrink: true,
66
+ };
67
+
68
+ const sprayCycle = {
69
+ type: 1,
70
+ particleNum: 200,
71
+ deltaAngle: 20,
72
+ deltaWidth: 20,
73
+ deltaHeight: 20,
74
+ pointSizeMin: 10,
75
+ pointSizeMax: 20,
76
+ speedMin: 0,
77
+ speedMax: 0,
78
+ lifeMin: 1000,
79
+ lifeMax: 3000,
80
+ accelerateX: 0,
81
+ accelerateY: 0,
82
+ addNumSpeed: 0.001,
83
+ enableFade: true,
84
+ enableShrink: false,
85
+ };
86
+ export default {
87
+ components: {
88
+ JsvSpray,
89
+ },
90
+ data() {
91
+ return {
92
+ okCount: 0,
93
+ };
94
+ },
95
+ setup() {
96
+ return {
97
+ sprayOk,
98
+ sprayRotate,
99
+ sprayMove,
100
+ sprayCycle,
101
+ snow,
102
+ };
103
+ },
104
+ methods: {
105
+ onKeyDown(ev) {
106
+ if (ev.keyCode == 8 || ev.keyCode == 27 || ev.keyCode == 10000) {
107
+ this.$router?.go(-1); // 有router时,是从DemoHomepage进入,回退
108
+ return true;
109
+ }
110
+ switch (ev.keyCode) {
111
+ case 13:
112
+ this.okCount++;
113
+ break;
114
+ }
115
+ return true;
116
+ },
117
+ }
118
+ };
119
+ </script>
120
+
121
+ <template>
122
+ <div class="root">
123
+ <jsv-focus-block
124
+ autoFocus
125
+ :onAction="{
126
+ onKeyDown: onKeyDown,
127
+ }"
128
+ >
129
+ <div :style="{ top: 400, left: 200 }">
130
+ <div class="spray-ok">
131
+ <jsv-spray
132
+ v-if="okCount > 0"
133
+ :key="okCount"
134
+ :pointRes="`url(${snow})`"
135
+ :sprayStyle="sprayOk"
136
+ />
137
+ </div>
138
+ <div class="describe">
139
+ {{ `#摁OK键\n#粒子在方形内生成\n#初速度方向360度随机\n#无外力作用` }}
140
+ </div>
141
+ </div>
142
+ <div :style="{ top: 400, left: 600 }">
143
+ <div class="spray-rotate">
144
+ <jsv-spray pointRes="rgba(0, 255, 0, 1)" :sprayStyle="sprayRotate" />
145
+ </div>
146
+ <div class="describe">
147
+ {{ `#粒子沿长边随机生成\n#初速度沿长边方向\n#受竖直方向的力作用` }}
148
+ </div>
149
+ </div>
150
+ <div :style="{ top: 400, left: 1000 }">
151
+ <div class="spray-move">
152
+ <jsv-spray :pointRes="`url(${snow})`" :sprayStyle="sprayMove" />
153
+ </div>
154
+ <div class="describe">
155
+ {{
156
+ `#粒子在方形随机生成\n#初速度方向为竖直向上方向正负20度内随机\n#受水平方向和竖直方向的力作用`
157
+ }}
158
+ </div>
159
+ </div>
160
+ <div :style="{ top: 20, left: 400 }">
161
+ <div :style="{
162
+ width: 40,
163
+ height: 40,
164
+ animation: 'cycle 3s linear infinite',
165
+ }">
166
+ <jsv-spray :pointRes="`url(${snow})`" :sprayStyle="sprayCycle" />
167
+ </div>
168
+ <div
169
+ :style="{
170
+ top: 20,
171
+ width: 500,
172
+ height: 100,
173
+ lineHeight: '100px',
174
+ textAlign: 'center',
175
+ fontSize: '50px',
176
+ color: '#FFFFFF',
177
+ }"
178
+ >
179
+ 粒子效果
180
+ </div>
181
+ <div class="describe">
182
+ {{ `#粒子在方形随机生成\n#初速度为0\n#不受外力` }}
183
+ </div>
184
+ </div>
185
+ </jsv-focus-block>
186
+ </div>
187
+ </template>
188
+
189
+ <style scoped>
190
+ @keyframes move-back-force {
191
+ 0% {
192
+ transform: translate3d(0, 0, 0);
193
+ }
194
+ 25% {
195
+ transform: translate3d(100px, 0, 0);
196
+ }
197
+ 50% {
198
+ transform: translate3d(0, 0, 0);
199
+ }
200
+ 75% {
201
+ transform: translate3d(100px, 0, 0);
202
+ }
203
+ 100% {
204
+ transform: translate3d(0, 0, 0);
205
+ }
206
+ }
207
+
208
+ @keyframes rotate {
209
+ from {
210
+ transform: rotate3d(0, 0, 1, 0);
211
+ }
212
+ to {
213
+ transform: rotate3d(0, 0, 1, 360deg);
214
+ }
215
+ }
216
+
217
+ @keyframes cycle {
218
+ 0% {
219
+ transform: translate3d(0, 0, 0);
220
+ }
221
+ 25% {
222
+ transform: translate3d(500px, 0, 0);
223
+ }
224
+ 50% {
225
+ transform: translate3d(500px, 100px, 0);
226
+ }
227
+ 75% {
228
+ transform: translate3d(0, 100px, 0);
229
+ }
230
+ 100% {
231
+ transform: translate3d(0, 0, 0);
232
+ }
233
+ }
234
+ .root {
235
+ width: 1920px;
236
+ height: 1080px;
237
+ background-color: #334c4c;
238
+ }
239
+
240
+ .spray-ok {
241
+ width: 100px;
242
+ height: 100px;
243
+ background-color: #00ff00;
244
+ }
245
+ .spray-rotate {
246
+ width: 10px;
247
+ height: 100px;
248
+ background-color: #00ff00;
249
+ animation: rotate 3s linear infinite;
250
+ }
251
+ .spray-move {
252
+ width: 100px;
253
+ height: 100px;
254
+ background-color: #00ff00;
255
+ animation: move-back-force 10s linear infinite;
256
+ }
257
+ .spray-cycle {
258
+ width: 40px;
259
+ height: 40px;
260
+ animation: cycle 3s linear infinite;
261
+ }
262
+ .describe {
263
+ left: 0px;
264
+ top: 140px;
265
+ width: 250px;
266
+ height: 200px;
267
+ color: #ffffff;
268
+ font-size: 20px;
269
+ }
270
270
  </style>