@shijiu/jsview-vue 2.1.341-test.0 → 2.1.362-test.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shijiu/jsview-vue",
3
- "version": "2.1.341-test.0",
3
+ "version": "2.1.362-test.0",
4
4
  "license": "MIT",
5
5
  "repository": "system/jsview-framework",
6
6
  "author": "mengxk",
@@ -30,13 +30,13 @@ function getManualChunks(id) {
30
30
  if(path.relative(projectDir, id) == 'node_modules/.cache/_virtual/_plugin-vue_export-helper.mjs') { // 解决非显示字符问题
31
31
  return 'export-sfc';
32
32
  } else if(path.basename(id).startsWith('JsvCommon')) { // 解决Browser和Native同时引用问题。
33
- return 'jsview-common';
33
+ return 'jsview-vue-common';
34
34
  }
35
35
  }
36
36
 
37
37
  function getChunkFileName(chunkInfo) {
38
- if (chunkInfo.name == 'jsview-common') {
39
- return 'jsview-common.mjs'
38
+ if (chunkInfo.name == 'jsview-vue-common') {
39
+ return 'jsview-vue-common.mjs'
40
40
  } else if (chunkInfo.name.startsWith('Browser')) {
41
41
  return 'browser/[name].mjs'
42
42
  } else if (chunkInfo.name == 'export-sfc') {
@@ -1,73 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  'use strict';
3
3
 
4
- import childProcess from 'node:child_process';
5
4
  import fs from 'node:fs';
6
5
  import path from 'path';
7
6
  import url from 'url';
8
-
9
- function checkNodeVersion(minMajorVersion = 16)
10
- {
11
- const versions = process.version.replace('v', '').split('.');
12
- const [majorVersion, minorVersion, patchVersion] = versions;
13
-
14
- console.info(`Node version: v${majorVersion}.${minorVersion}.${patchVersion}`);
15
- if (majorVersion < minMajorVersion) {
16
- console.error('Error: Node version is too low! Please upgrade your Node.js first.');
17
- process.exit(1)
18
- }
19
- }
20
-
21
- function execCommand(cmdline)
22
- {
23
- console.info('Run [' + cmdline + ']... ');
24
- try {
25
- const ret = childProcess.execSync(cmdline, { stdio: 'inherit' });
26
- if (ret) {
27
- return ret.toString();
28
- }
29
- return null;
30
- } catch (err) {
31
- console.error('Error: ', err);
32
- process.exit(1);
33
- }
34
- }
35
-
36
- function parseArguments()
37
- {
38
- const options = {
39
- withoutNpmInstall: false,
40
- };
41
-
42
- // arg0: node
43
- // arg1: script.js
44
- const arguList = process.argv.slice(2);
45
- for (const argu of arguList) {
46
- if (argu == '--without-npm-install' || argu == '-n') {
47
- options.withoutNpmInstall = true;
48
- } else if (argu == '--help' || argu == '-h') {
49
- console.log('Usages:')
50
- console.log('')
51
- console.log(' -n | --without-npm-install: Ignore to run npm install.')
52
- console.log('')
53
- console.log(' -h | --help: Print help usages.')
54
- console.log('')
55
- process.exit(0)
56
- } else {
57
- console.error('Failed to parse argument: ' + argu)
58
- process.exit(1)
59
- }
60
- }
61
-
62
- return options
63
- }
64
-
65
- async function main()
7
+ import {
8
+ checkNodeVersion,
9
+ execCommand,
10
+ getNpmRegistry,
11
+ parseArguments,
12
+ } from '../../../@shijiu/jsview/tools/jsview-common.mjs';
13
+
14
+ async function main(argv)
66
15
  {
67
16
  checkNodeVersion();
68
17
 
69
- const options = parseArguments();
70
-
71
18
  const currJsFilePath = url.fileURLToPath(import.meta.url)
72
19
  const jsviewVueDir = path.resolve(currJsFilePath, '../../') // jsview-framework/@shijiu/jsview-vue
73
20
 
@@ -80,9 +27,9 @@ async function main()
80
27
  // vue + vite
81
28
  'vue@3.2.45',
82
29
  'vue-router@4.1.6',
83
- '@vitejs/plugin-vue@5.0.3 ',
30
+ '@vitejs/plugin-vue@4.0.0',
84
31
  'typescript@4.9.3',
85
- 'vite@5.0.11',
32
+ 'vite@4.0.0',
86
33
  'vue-tsc@1.0.11',
87
34
 
88
35
  // jsview-vue dep
@@ -95,12 +42,13 @@ async function main()
95
42
  let batchCommand = []
96
43
 
97
44
  fs.rmSync(`${jsviewVueDir}/bin`, { recursive: true, force: true });
98
- if(options.withoutNpmInstall == false
45
+ if(!argv.withoutNpmInstall
99
46
  || fs.existsSync(`${jsviewVueDir}/node_modules`) == false) {
47
+ const registry = getNpmRegistry();
100
48
  fs.rmSync(`${jsviewVueDir}/node_modules`, { recursive: true, force: true });
101
49
  batchCommand = [
102
- 'npm install',
103
- `npm install --no-save ${noSavePackages}`,
50
+ `npm install --registry=${registry}`,
51
+ `npm install --registry=${registry} --force --no-save ${noSavePackages}`,
104
52
  `node ${jsviewVueDir}/node_modules/@shijiu/jsview/tools/jsview-post-install.mjs --framework=vue`,
105
53
  ];
106
54
  }
@@ -114,7 +62,7 @@ async function main()
114
62
  execCommand(`cd ${jsviewVueDir} && ${command}`);
115
63
  }
116
64
 
117
- if(options.withoutNpmInstall == false) {
65
+ if(!argv.withoutNpmInstall) {
118
66
  fs.rmSync(`${jsviewVueDir}/node_modules`, { recursive: true, force: true });
119
67
  fs.rmSync(`${jsviewVueDir}/package-lock.json`, { recursive: true, force: true });
120
68
  }
@@ -122,4 +70,10 @@ async function main()
122
70
  console.info('Done...');
123
71
  }
124
72
 
125
- main();
73
+ const requiredUsages = {
74
+ };
75
+ const optionalUsages = {
76
+ '-n | --without-npm-install': 'Ignore to run npm install.',
77
+ };
78
+ const argv = parseArguments(requiredUsages, optionalUsages, false);
79
+ main(argv);
@@ -94,9 +94,11 @@ const props = defineProps({
94
94
  },
95
95
  });
96
96
 
97
- let key = "JsvAudio_" + window.JsView?.getJsContextId?.() + "_" + getKeyToken();
97
+ //同进程起不同版本的core时, pluginMananger是一个对象, 因此java端的JsvAudio是同一个map, 所以要加jsviewCoreInfo避免id重复导致bug
98
+ const jsviewCoreInfo = window.JsView?.getJsContextId?.() + "_" + window.JsView.CodeRevision
99
+ let key = "JsvAudio_" + jsviewCoreInfo + "_" + getKeyToken();
98
100
  if (props.playerKey) {
99
- key = props.playerKey + "_" + window.JsView?.getJsContextId?.();
101
+ key = props.playerKey + "_" + jsviewCoreInfo;
100
102
  }
101
103
  console.log("player key:" + key);
102
104
  const audio = sAudioManager.createAudio(key);
@@ -7,9 +7,9 @@ let PluginInfo = {
7
7
  // downloadUrl:"http://192.168.0.63:8080/plugin/JsvAudio-164.zip", //插件下载地址
8
8
  packageName: "com.qcode.jsvaudio",
9
9
  name: "音频插件",
10
- version: "1.0.26", //插件需要的版本号
11
- versionCodeMin: 26,
12
- versionCodeMax: 26,
10
+ version: "1.0.27", //插件需要的版本号
11
+ versionCodeMin: 27,
12
+ versionCodeMax: 27,
13
13
  bridgeName: "jsvAudioBridge", //插件bridge注册到jsview的名称
14
14
  className: "com.qcode.jsvaudio.JsvAudio", //插件初始化类名称
15
15
  initMethod: "createInstance", //插件初始化方法
@@ -7,9 +7,9 @@ let PluginInfo = {
7
7
  // downloadUrl:"http://192.168.0.63:8080/plugin/JsvAudio-164.zip", //插件下载地址
8
8
  packageName: "com.qcode.jsvaudio",
9
9
  name: "音频插件",
10
- version: "1.0.26", //插件需要的版本号
11
- versionCodeMin: 26,
12
- versionCodeMax: 26,
10
+ version: "1.0.27", //插件需要的版本号
11
+ versionCodeMin: 27,
12
+ versionCodeMax: 27,
13
13
  bridgeName: "jsvAudioBridge", //插件bridge注册到jsview的名称
14
14
  className: "com.qcode.jsvaudio.JsvAudio", //插件初始化类名称
15
15
  initMethod: "createInstance", //插件初始化方法
@@ -1,4 +1,4 @@
1
- import ForgeHandles from "../../../JsViewVueTools/ForgeHandles";
1
+ import ForgeHandles from "../../../JsViewVueTools/ForgeHandles.js";
2
2
  import { TextureBase } from "../Texture"
3
3
  import * as Constants from "./CommandList"
4
4
  import { RectPath, CirclePath, CustomPath } from "./Path"
@@ -82,7 +82,7 @@ export class PartLoopTool extends LoopToolBase {
82
82
  this.mTotalFrameNum = frameNum;
83
83
  this.mValid = this.updateLoop();
84
84
  if (!this.mValid) {
85
- Log.e(TAG, "PartLoopTool init loop info error." + this.mLoopInfo.toString());
85
+ console.log("PartLoopTool init loop info error." + this.mLoopInfo.toString());
86
86
  } else {
87
87
  this.mNextFrameIndex = this.mCurLoopStartFrame;
88
88
  }
@@ -7,20 +7,20 @@ const props = defineProps({
7
7
  onPreloadDone: Function, // 预加载完成回调
8
8
  onDownloadDone: Function, // 预下载完成回调
9
9
  onPreloading: Function,
10
- })
10
+ });
11
11
 
12
12
  const loadViewList = reactive({
13
13
  preloadViewList: [],
14
- downloadViewList: []
15
- })
14
+ downloadViewList: [],
15
+ });
16
16
  // 记录传入的preload为null的数量,由于vue不支持在子组件修改props值,所有在删除值为null时,需要++,这样才能保证与传入数据的length相等从而触发回调
17
17
  let preloadIsNullNum = 0;
18
18
  let downloadIsNullNum = 0;
19
19
 
20
- let preloadResultMap = {}
21
- let downloadResultMap = {}
22
- let downloadUrlList = []
23
- let unmountStatus = { unmount: false }
20
+ let preloadResultMap = {};
21
+ let downloadResultMap = {};
22
+ let downloadUrlList = [];
23
+ let unmountStatus = { unmount: false };
24
24
  let preloadStateList = null;
25
25
  let downloadStateList = null;
26
26
 
@@ -57,13 +57,16 @@ const getPreloadList = () => {
57
57
  loadedNum += item ? 1 : 0;
58
58
  });
59
59
  props.onPreloading?.(loadedNum / preloadStateList.length);
60
- if (props.onPreloadDone && loadedNum + preloadIsNullNum == preloadStateList.length) {
60
+ if (
61
+ props.onPreloadDone &&
62
+ loadedNum + preloadIsNullNum == preloadStateList.length
63
+ ) {
61
64
  props.onPreloadDone?.(preloadResultMap);
62
65
  }
63
66
  };
64
67
  image.src = item.url;
65
68
  });
66
- }
69
+ };
67
70
 
68
71
  const getDownloadList = () => {
69
72
  downloadStateList = new Array(props.downloadList.length).fill(false);
@@ -104,31 +107,22 @@ const getDownloadList = () => {
104
107
  downloadNum += item ? 1 : 0;
105
108
  });
106
109
  if (downloadNum + downloadIsNullNum == downloadStateList.length) {
107
- props.onDownloadDone?.(
108
- downloadUrlList,
109
- downloadResultMap
110
- );
110
+ props.onDownloadDone?.(downloadUrlList, downloadResultMap);
111
111
  }
112
112
  }
113
113
  };
114
114
  image.src = item.url;
115
115
  });
116
- }
116
+ };
117
117
 
118
- if (props.preloadList) {
119
- getPreloadList();
120
- }
121
- if (props.downloadList) {
122
- getDownloadList();
123
- }
124
118
  watchEffect(() => {
125
119
  if (props.preloadList) {
126
120
  console.log("JsvPreload: update preloadList");
127
- preloadIsNullNum = 0
121
+ preloadIsNullNum = 0;
128
122
  preloadResultMap = {};
129
123
  getPreloadList();
130
124
  }
131
- })
125
+ });
132
126
  watchEffect(() => {
133
127
  if (props.downloadList) {
134
128
  console.log("JsvPreload: update downloadList");
@@ -137,16 +131,14 @@ watchEffect(() => {
137
131
  downloadUrlList = [];
138
132
  getDownloadList();
139
133
  }
140
- })
134
+ });
141
135
 
142
136
  onBeforeUnmount(() => {
143
137
  unmountStatus.unmount = true;
144
- })
138
+ });
145
139
  </script>
146
140
 
147
141
  <template>
148
142
  <!-- 保证该组件不描画任何东西,只是为了触发onload,让网页自行下载图片 -->
149
143
  <div v-if="!preloadList"></div>
150
144
  </template>
151
-
152
-
@@ -78,11 +78,11 @@ const props = defineProps({
78
78
  onPreloading: Function,
79
79
  onPreloadDone: Function,
80
80
  onDownloadDone: Function,
81
- })
81
+ });
82
82
  const loadViewList = reactive({
83
83
  preloadViewList: [],
84
- downloadViewList: []
85
- })
84
+ downloadViewList: [],
85
+ });
86
86
  let preloadStateList = [];
87
87
  let downloadStateList = [];
88
88
  let downloadResultMap = {};
@@ -113,7 +113,7 @@ const _releasePreloadView = () => {
113
113
  loadViewList.preloadViewList = [];
114
114
  preloadStateList = [];
115
115
  }
116
- }
116
+ };
117
117
  const _releaseDownloadView = () => {
118
118
  if (window.JsView) {
119
119
  if (loadViewList.downloadViewList.length > 0) {
@@ -132,11 +132,11 @@ const _releaseDownloadView = () => {
132
132
  }
133
133
  loadViewList.downloadViewList = [];
134
134
  downloadStateList = [];
135
- }
135
+ };
136
136
  const _releaseForgeView = () => {
137
137
  _releasePreloadView();
138
138
  _releaseDownloadView();
139
- }
139
+ };
140
140
 
141
141
  const _checkPreload = () => {
142
142
  let loadedNum = 0;
@@ -152,7 +152,7 @@ const _checkPreload = () => {
152
152
  ) {
153
153
  props.onPreloadDone(preloadResultMap);
154
154
  }
155
- }
155
+ };
156
156
 
157
157
  const _getPreloadViewIdList = () => {
158
158
  if (!props.preloadList) {
@@ -210,19 +210,16 @@ const _getPreloadViewIdList = () => {
210
210
  preloadStateList[index] = true; // 无法创建texture的图片先认为加载完成
211
211
  return;
212
212
  }
213
- const callback_token = texture.RegisterLoadImageCallback(
214
- null,
215
- (params) => {
216
- console.log(`preload succeed ${image_url}`, params);
217
- preloadStateList[index] = true;
218
- preloadResultMap[item.url] = {
219
- width: params.width,
220
- height: params.height,
221
- };
222
- console.log(`preload succeed ${item.url}, params:${params}`);
223
- _checkPreload();
224
- }
225
- );
213
+ const callback_token = texture.RegisterLoadImageCallback(null, (params) => {
214
+ console.log(`preload succeed ${image_url}`, params);
215
+ preloadStateList[index] = true;
216
+ preloadResultMap[item.url] = {
217
+ width: params.width,
218
+ height: params.height,
219
+ };
220
+ console.log(`preload succeed ${item.url}, params:${params}`);
221
+ _checkPreload();
222
+ });
226
223
  texture.EnableBackgroundLoad();
227
224
  const texture_setting = new Forge.ExternalTextureSetting(texture);
228
225
  const preload_view = new Forge.PreloadView(texture_setting);
@@ -232,20 +229,20 @@ const _getPreloadViewIdList = () => {
232
229
  callToken: callback_token,
233
230
  };
234
231
  });
235
- }
232
+ };
236
233
 
237
234
  const _checkDownload = () => {
238
- let loadedNum = 0
235
+ let loadedNum = 0;
239
236
  downloadStateList.forEach((state) => {
240
237
  loadedNum = state ? ++loadedNum : loadedNum;
241
238
  });
242
- if (props.onDownloadDone && loadedNum === downloadStateList.length - downloadIsNullNum) {
243
- props.onDownloadDone(
244
- downloadStateList,
245
- downloadResultMap
246
- );
239
+ if (
240
+ props.onDownloadDone &&
241
+ loadedNum === downloadStateList.length - downloadIsNullNum
242
+ ) {
243
+ props.onDownloadDone(downloadStateList, downloadResultMap);
247
244
  }
248
- }
245
+ };
249
246
 
250
247
  const _getDownloadViewIdList = () => {
251
248
  if (!props.downloadList) {
@@ -282,9 +279,7 @@ const _getDownloadViewIdList = () => {
282
279
  item.getImageSize
283
280
  );
284
281
  if (!texture) {
285
- console.error(
286
- "Error: Down view build texture failed for " + image_url
287
- );
282
+ console.error("Error: Down view build texture failed for " + image_url);
288
283
  // 无法创建texture的图片先认为加载完成
289
284
  downloadStateList[index] = "invalid";
290
285
  return;
@@ -317,12 +312,9 @@ const _getDownloadViewIdList = () => {
317
312
  callToken: callback_token,
318
313
  };
319
314
  });
320
- }
321
-
315
+ };
322
316
 
323
317
  _releaseForgeView();
324
- _getPreloadViewIdList();
325
- _getDownloadViewIdList();
326
318
 
327
319
  watchEffect(() => {
328
320
  if (props.preloadList) {
@@ -332,36 +324,42 @@ watchEffect(() => {
332
324
  _getPreloadViewIdList();
333
325
  preloadToken++;
334
326
  }
335
- })
327
+ });
336
328
  watchEffect(() => {
337
329
  if (props.downloadList) {
338
330
  console.log("JsvPreload: update downloadList");
339
- downloadIsNullNum = 0
331
+ downloadIsNullNum = 0;
340
332
  _releaseDownloadView();
341
333
  _getDownloadViewIdList();
342
334
  downloadToken++;
343
335
  }
344
- })
336
+ });
345
337
 
346
338
  onBeforeUnmount(() => {
347
339
  _releaseForgeView();
348
- })
349
-
350
-
340
+ });
351
341
  </script>
352
-
342
+
353
343
  <template>
354
344
  <div>
355
345
  <div :key="'preload_' + preloadToken">
356
- <div v-for="item in loadViewList.preloadViewList" :key="item.viewId" :id="item.viewId">
346
+ <div
347
+ v-for="item in loadViewList.preloadViewList"
348
+ :key="item.viewId"
349
+ :id="item.viewId"
350
+ >
357
351
  <div v-if="item.viewId" :data-jsv-vw-innerview="item.viewId"></div>
358
352
  </div>
359
353
  </div>
360
354
 
361
355
  <div :key="'download_' + downloadToken">
362
- <div v-for="item in loadViewList.downloadViewList" :key="item.viewId" :id="item.viewId">
356
+ <div
357
+ v-for="item in loadViewList.downloadViewList"
358
+ :key="item.viewId"
359
+ :id="item.viewId"
360
+ >
363
361
  <div v-if="item.viewId" :data-jsv-vw-innerview="item.viewId"></div>
364
362
  </div>
365
363
  </div>
366
364
  </div>
367
- </template>
365
+ </template>
@@ -322,7 +322,7 @@ const op = {
322
322
  indexArray = "all"; // 默认为全展示
323
323
  }
324
324
  if (!loopSet) {
325
- loopSet = "";
325
+ loopSet = props.loop;
326
326
  }
327
327
  if (!duration) {
328
328
  duration = props.duration;
@@ -56,8 +56,8 @@
56
56
  </template>
57
57
 
58
58
  <script setup>
59
- import { reactive, shallowRef } from "vue";
60
- import { getKeyFramesGroup } from '../../JsViewVueTools/JsvDynamicKeyFrames.js'
59
+ import { reactive, shallowRef,onBeforeUnmount } from "vue";
60
+ import { getKeyFramesGroup } from "../../JsViewVueTools/JsvDynamicKeyFrames.js";
61
61
 
62
62
  const props = defineProps({
63
63
  dispNumber: { type: Number, require: true },
@@ -159,6 +159,9 @@ for (let i = midIndex - 1; i >= 0; i--) {
159
159
  let startPosX = leftArray[i + 1].left + leftArray[i + 1].width / 2;
160
160
  leftArray[i].left = startPosX - space.value - leftArray[i].width / 2;
161
161
  }
162
+ //确定动画距离
163
+ let aniDistance = leftArray[midIndex].left - leftArray[midIndex - 1].left;
164
+
162
165
  //右边 left
163
166
  for (let i = midIndex + 1; i < items.length; i++) {
164
167
  let startPosX = leftArray[i - 1].left + leftArray[i - 1].width / 2;
@@ -293,7 +296,7 @@ const onKeyDown = (ev) => {
293
296
  let styleShell = getKeyFramesGroup();
294
297
  let slideToLeftA = `@keyframes slideToLeftA {
295
298
  from {
296
- transform: translate3d(${-150}, 0, 0);
299
+ transform: translate3d(${-aniDistance}, 0, 0);
297
300
  }
298
301
  to {
299
302
  transform: translate3d(0, 0, 0);
@@ -304,7 +307,7 @@ styleShell.insertRule(slideToLeftA);
304
307
  //左边动画B
305
308
  let slideToLeftB = `@keyframes slideToLeftB {
306
309
  from {
307
- transform: translate3d(${-150}, 0, 0);
310
+ transform: translate3d(${-aniDistance}, 0, 0);
308
311
  }
309
312
  to {
310
313
  transform: translate3d(0, 0, 0);
@@ -316,7 +319,7 @@ styleShell.insertRule(slideToLeftB);
316
319
  //右边动画A
317
320
  let slideToRightA = `@keyframes slideToRightA {
318
321
  from {
319
- transform: translate3d(${150}, 0, 0);
322
+ transform: translate3d(${aniDistance}, 0, 0);
320
323
  }
321
324
  to {
322
325
  transform: translate3d(0, 0, 0);
@@ -327,7 +330,7 @@ styleShell.insertRule(slideToRightA);
327
330
  //右边动画B
328
331
  let slideToRightB = `@keyframes slideToRightB {
329
332
  from {
330
- transform: translate3d(${150}, 0, 0);
333
+ transform: translate3d(${aniDistance}, 0, 0);
331
334
  }
332
335
  to {
333
336
  transform: translate3d(0, 0, 0);
@@ -338,7 +341,9 @@ styleShell.insertRule(slideToRightB);
338
341
  //缩小动画A
339
342
  let lowerA = `@keyframes lowerA {
340
343
  from {
341
- transform: scale3d(1.1, 1.1, 1);
344
+ transform: scale3d(${1 + props.sideScale},${
345
+ 1 + props.sideScale
346
+ }, 1);
342
347
  }
343
348
  to {
344
349
  transform: scale3d(1, 1, 1);
@@ -348,7 +353,9 @@ styleShell.insertRule(lowerA);
348
353
  //缩小动画B
349
354
  let lowerB = `@keyframes lowerB {
350
355
  from {
351
- transform: scale3d(1.1, 1.1, 1);
356
+ transform: scale3d(${1 + props.sideScale},${
357
+ 1 + props.sideScale
358
+ }, 1);
352
359
  }
353
360
  to {
354
361
  transform: scale3d(1, 1, 1);
@@ -358,7 +365,9 @@ styleShell.insertRule(lowerB);
358
365
  //放大动画A
359
366
  let biggerA = `@keyframes biggerA {
360
367
  from {
361
- transform: scale3d(${1 / 1.1},${1 / 1.1} , 1);
368
+ transform: scale3d(${1 / (1 + props.sideScale)},${
369
+ 1 / (1 + props.sideScale)
370
+ } , 1);
362
371
  }
363
372
  to {
364
373
  transform: scale3d(1, 1, 1);
@@ -368,7 +377,9 @@ styleShell.insertRule(biggerA);
368
377
  //放大动画B
369
378
  let biggerB = `@keyframes biggerB {
370
379
  from {
371
- transform: scale3d(${1 / 1.1},${1 / 1.1} , 1);
380
+ transform: scale3d(${1 / (1 + props.sideScale)},${
381
+ 1 / (1 + props.sideScale)
382
+ } , 1);
372
383
  }
373
384
  to {
374
385
  transform: scale3d(1, 1, 1);
@@ -379,7 +390,7 @@ styleShell.insertRule(biggerB);
379
390
  //第0项左移动画A
380
391
  let slideToLeft0A = `@keyframes slideToLeft0A {
381
392
  from {
382
- transform: translate3d(${150}, 0, 0);
393
+ transform: translate3d(${aniDistance}, 0, 0);
383
394
  }
384
395
  to {
385
396
  transform: translate3d(0, 0, 0);
@@ -389,7 +400,7 @@ styleShell.insertRule(slideToLeft0A);
389
400
  //第0项左移动画B
390
401
  let slideToLeft0B = `@keyframes slideToLeft0B {
391
402
  from {
392
- transform: translate3d(${150}, 0, 0);
403
+ transform: translate3d(${aniDistance}, 0, 0);
393
404
  }
394
405
  to {
395
406
  transform: translate3d(0, 0, 0);
@@ -400,7 +411,7 @@ styleShell.insertRule(slideToLeft0B);
400
411
  //页面最后一项右移动画A
401
412
  let slideToRight0A = `@keyframes slideToRight0A {
402
413
  from {
403
- transform: translate3d(${-150}, 0, 0);
414
+ transform: translate3d(${-aniDistance}, 0, 0);
404
415
  }
405
416
  to {
406
417
  transform: translate3d(0, 0, 0);
@@ -411,7 +422,7 @@ styleShell.insertRule(slideToRight0A);
411
422
  //页面最后一项右移动画B
412
423
  let slideToRight0B = `@keyframes slideToRight0B {
413
424
  from {
414
- transform: translate3d(${-150}, 0, 0);
425
+ transform: translate3d(${-aniDistance}, 0, 0);
415
426
  }
416
427
  to {
417
428
  transform: translate3d(0, 0, 0);
@@ -447,6 +458,20 @@ const onActionObj = {
447
458
  onFocus: props.onFocus,
448
459
  onBlur: props.onBlur,
449
460
  };
461
+ onBeforeUnmount(()=>{
462
+ styleShell.removeRule('slideToLeftA');
463
+ styleShell.removeRule('slideToLeftB');
464
+ styleShell.removeRule('slideToRightA')
465
+ styleShell.removeRule('slideToRightB')
466
+ styleShell.removeRule('slideToLeft0A')
467
+ styleShell.removeRule('slideToLeft0B')
468
+ styleShell.removeRule('slideToRight0A')
469
+ styleShell.removeRule('slideToRight0B')
470
+ styleShell.removeRule('lowerA')
471
+ styleShell.removeRule('lowerB')
472
+ styleShell.removeRule('biggerA')
473
+ styleShell.removeRule('biggerB')
474
+ })
450
475
  </script>
451
476
 
452
477
  <style scoped></style>