@shijiu/jsview-vue-samples 2.2.201 → 2.2.373
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/BakeViewDemo/App.vue +6 -1
- package/Basic/components/anim/AnimEasingCubicBezier.vue +56 -0
- package/Basic/components/anim/AnimGroup2.vue +33 -0
- package/Basic/components/panel/Panel2.vue +8 -3
- package/CoupletsTest/widget/Banger/Maroon.vue +0 -1
- package/CoupletsTest/widget/Fireworks/Fireworks.vue +0 -2
- package/CustomShader/App.vue +30 -13
- package/CustomShader/pageFlip.glsl +3 -2
- package/DemoHomepage/App.vue +14 -5
- package/DemoHomepage/components/Item.vue +23 -12
- package/DemoHomepage/index.d.ts +5 -2
- package/DemoHomepage/router.js +97 -74
- package/DispersedFocusControl/App.vue +67 -0
- package/DispersedFocusControl/Button.vue +76 -0
- package/DispersedFocusControl/data.js +44 -0
- package/DragBox/App.vue +148 -0
- package/FlexCellDemo/App.vue +47 -223
- package/FlexCellDemo/TestFrame1.vue +88 -0
- package/FlexCellDemo/TestFrame2.vue +100 -0
- package/FlexCellDemo/TestFrame3.vue +97 -0
- package/FlexCellDemo/TestFrame4.vue +60 -0
- package/FlexCellDemo/TestFrame5.vue +60 -0
- package/FlexCellDemo/images/6.jpg +0 -0
- package/FocusMoveStyle/App.vue +1 -0
- package/FocusMoveStyle/CreepFocus.vue +11 -1
- package/FocusMoveStyle/FoldableItem.vue +1 -1
- package/FullScreenFlex/App.vue +42 -0
- package/FullScreenFlex/TestFrame2.vue +107 -0
- package/FullScreenFlex/images/1.png +0 -0
- package/HashHistory/App.vue +8 -4
- package/Input/App.vue +184 -97
- package/Input/InputPanel.vue +98 -82
- package/LatexFormula/App.vue +97 -10
- package/MetroWidgetDemos/itemSizeUpdate/backward/Item.vue +1 -1
- package/MetroWidgetDemos/routeList.js +17 -17
- package/MindMap/App.vue +10 -1
- package/MindMap/data.js +34 -8
- package/Parkour/appConfig/jsview.config.mjs +0 -4
- package/PosterPacker/App.vue +207 -0
- package/PosterPacker/images/bg.jpg +0 -0
- package/PosterPacker/images/blue.png +0 -0
- package/PosterPacker/images/darkGreen.png +0 -0
- package/PosterPacker/images/left.png +0 -0
- package/PosterPacker/images/orange.png +0 -0
- package/PosterPacker/images/pink.png +0 -0
- package/PosterPacker/images/purple.png +0 -0
- package/PosterPacker/images/red.png +0 -0
- package/PosterPacker/images/right.png +0 -0
- package/PosterPacker/images/yellowGreen.png +0 -0
- package/PosterPacker/tools/geniePakcer/Genie.vue +686 -0
- package/PosterPacker/tools/geniePakcer/genieBottom.glsl +49 -0
- package/PosterPacker/tools/geniePakcer/genieLeft.glsl +50 -0
- package/PosterPacker/tools/geniePakcer/genieRight.glsl +57 -0
- package/PosterPacker/tools/geniePakcer/genieTop.glsl +50 -0
- package/PosterPacker/tools/particlePacker/Particle.vue +71 -0
- package/PosterPacker/tools/vortexPacker/Vortex.vue +135 -0
- package/PosterPacker/tools/vortexPacker/vortex.glsl +37 -0
- package/Preload/App.vue +1 -1
- package/ScrollBoxTest/ClipBar.vue +1 -0
- package/ScrollBoxTest/NinePatchBar.vue +1 -0
- package/ScrollBoxTest/SizeDivBar.vue +1 -0
- package/SprayMove/App.vue +75 -0
- package/SprayMove/SprayMove.vue +173 -0
- package/SprayView/App.vue +8 -9
- package/TestNativeSharedView/App.vue +6 -4
- package/TextShadowDemo/App.vue +3 -3
- package/TextureAnimation/App.vue +244 -148
- package/TextureAnimation/App2.vue +66 -14
- package/TextureAnimation/assets/blackWhiteTurntable.png +0 -0
- package/TextureAnimation/assets/circleHaloMask.png +0 -0
- package/TouchWidget/App.vue +79 -40
- package/TouchWidget/Item.vue +15 -3
- package/index.d.ts +1 -1
- package/package.json +1 -1
- package/TextureAnimation/assets/mask.png +0 -0
- package/TextureAnimation/assets/php.jpg +0 -0
- package/TouchSample/App.vue +0 -136
- package/TouchSample/Item.vue +0 -102
- package/TouchSample/MetroWidgetHorizontal.vue +0 -144
- package/TouchSample/MetroWidgetVertical.vue +0 -144
- package/TouchSample/TouchContainerHorizontal.vue +0 -160
- package/TouchSample/TouchContainerVertical.vue +0 -160
- package/TouchSample/data.js +0 -81
- /package/TextureAnimation/assets/{php2.png → borderOpacity.png} +0 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { JsvFlexDiv } from "jsview";
|
|
3
|
+
import image1 from "./images/1.png";
|
|
4
|
+
import image2 from "./images/2.png";
|
|
5
|
+
import image3 from "./images/3.png";
|
|
6
|
+
import image4 from "./images/4.jpg";
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<template>
|
|
10
|
+
<div
|
|
11
|
+
:style="{
|
|
12
|
+
left: -50,
|
|
13
|
+
width: 350,
|
|
14
|
+
height: 400,
|
|
15
|
+
overflow: 'hidden',
|
|
16
|
+
}"
|
|
17
|
+
>
|
|
18
|
+
<div
|
|
19
|
+
:style="{
|
|
20
|
+
left: 50,
|
|
21
|
+
width: 300,
|
|
22
|
+
height: 400,
|
|
23
|
+
backgroundColor: 'rgba(100,100,100,0.5)',
|
|
24
|
+
fontSize: 12,
|
|
25
|
+
color: '#000000',
|
|
26
|
+
textAlign: 'center',
|
|
27
|
+
lineHeight: 16,
|
|
28
|
+
}"
|
|
29
|
+
>
|
|
30
|
+
<jsv-flex-div
|
|
31
|
+
:style="{
|
|
32
|
+
width: 300,
|
|
33
|
+
height: 400,
|
|
34
|
+
flexDirection: 'column',
|
|
35
|
+
alignItems: 'flex-end',
|
|
36
|
+
justifyContent: 'center',
|
|
37
|
+
}"
|
|
38
|
+
>
|
|
39
|
+
<!-- 文字绘制区域超过容器尺寸的内容的测试 -->
|
|
40
|
+
<div :style="{ width: 450, backgroundColor: 'rgba(0, 50, 0, 0.5)' }">
|
|
41
|
+
{{
|
|
42
|
+
"对于涉嫌借款或其他涉及财产的网络信息、账户密码、广告或推广等信息的,用户请谨慎对待并自行判断,基于前述原因您因此遭受的利润、商业信誉、资料损失或其他有形或无形损失的,我们不承担任何直接、间接、附带、特别、衍生性或惩罚性的赔偿责任。"
|
|
43
|
+
}}
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
<!-- 文字绘制区域未超过容器尺寸的内容的测试 -->
|
|
47
|
+
<div :style="{ width: 250, backgroundColor: 'rgba(0, 70, 0, 0.5)' }">
|
|
48
|
+
{{
|
|
49
|
+
"对于涉嫌借款或其他涉及财产的网络信息、账户密码、广告或推广等信息的,用户请谨慎对待并自行判断,基于前述原因您因此遭受的利润、商业信誉、资料损失或其他有形或无形损失的,我们不承担任何直接、间接、附带、特别、衍生性或惩罚性的赔偿责任。"
|
|
50
|
+
}}
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
<!-- 超长折行文字测试点,文字字数大于3000字,最后一个字为'拾' -->
|
|
54
|
+
<div
|
|
55
|
+
:style="{
|
|
56
|
+
height: 16,
|
|
57
|
+
backgroundColor: 'rgba(0, 90, 0, 0.5)',
|
|
58
|
+
whiteSpace: 'nowrap',
|
|
59
|
+
}"
|
|
60
|
+
>
|
|
61
|
+
{{
|
|
62
|
+
"一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九拾"
|
|
63
|
+
}}
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
<!-- 短文字横向排布接续的测试 -->
|
|
67
|
+
<jsv-flex-div
|
|
68
|
+
:style="{
|
|
69
|
+
flexDirection: 'row',
|
|
70
|
+
alignItems: 'center',
|
|
71
|
+
backgroundColor: 'rgba(0, 110, 0, 0.5)',
|
|
72
|
+
alignSelf: 'center',
|
|
73
|
+
}"
|
|
74
|
+
>
|
|
75
|
+
<div :style="{ height: 16 }">
|
|
76
|
+
{{ "++一二三" }}
|
|
77
|
+
</div>
|
|
78
|
+
<div
|
|
79
|
+
:style="{
|
|
80
|
+
height: 20,
|
|
81
|
+
lineHeight: 20,
|
|
82
|
+
fontSize: 18,
|
|
83
|
+
backgroundColor: 'rgba(10, 0, 0, 0.5)',
|
|
84
|
+
}"
|
|
85
|
+
>
|
|
86
|
+
{{ "四五六" }}
|
|
87
|
+
</div>
|
|
88
|
+
<div :style="{ height: 16 }">
|
|
89
|
+
{{ "七八九++" }}
|
|
90
|
+
</div>
|
|
91
|
+
</jsv-flex-div>
|
|
92
|
+
</jsv-flex-div>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</template>
|
|
96
|
+
|
|
97
|
+
<style scoped></style>
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { JsvFlexDiv } from "jsview";
|
|
3
|
+
import image1 from "./images/1.png";
|
|
4
|
+
import image2 from "./images/2.png";
|
|
5
|
+
import image3 from "./images/3.png";
|
|
6
|
+
import image4 from "./images/4.jpg";
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<template>
|
|
10
|
+
<!-- 测试aligneContent未设置, 内容进行stretch的场景, 有剩余 -->
|
|
11
|
+
<JsvFlexDiv
|
|
12
|
+
:style="{
|
|
13
|
+
width: 300,
|
|
14
|
+
height: 400,
|
|
15
|
+
flexDirection: 'row',
|
|
16
|
+
justifyContent: 'center',
|
|
17
|
+
alignItems: 'stretch',
|
|
18
|
+
flexWrap: 'wrap',
|
|
19
|
+
// alignContent: 'center',
|
|
20
|
+
}"
|
|
21
|
+
>
|
|
22
|
+
<div
|
|
23
|
+
:style="{
|
|
24
|
+
height: 40,
|
|
25
|
+
width: 300,
|
|
26
|
+
fontSize: 15,
|
|
27
|
+
lineHeight: 18,
|
|
28
|
+
color: '#FFFFFF',
|
|
29
|
+
textAlign: 'center',
|
|
30
|
+
}"
|
|
31
|
+
>
|
|
32
|
+
{{ "测试多行aligneContent未设置,\n 内容进行stretch的场景,有剩余" }}
|
|
33
|
+
</div>
|
|
34
|
+
<img :src="image1" :style="{ height: 50 }" />
|
|
35
|
+
<img :src="image1" :style="{ height: 80 }" />
|
|
36
|
+
<div
|
|
37
|
+
id="DivAnchor1"
|
|
38
|
+
:style="{ width: 20, backgroundColor: 'rgba(255, 0, 0, 0.8)' }"
|
|
39
|
+
/>
|
|
40
|
+
<img :src="image1" :style="{ height: 70 }" />
|
|
41
|
+
|
|
42
|
+
<img :src="image1" :style="{ height: 70 }" />
|
|
43
|
+
<img :src="image1" :style="{ height: 80 }" />
|
|
44
|
+
<img :src="image1" :style="{ height: 60 }" />
|
|
45
|
+
<img :src="image1" :style="{ height: 30 }" />
|
|
46
|
+
<div
|
|
47
|
+
id="DivAnchor2"
|
|
48
|
+
:style="{ width: 60, backgroundColor: 'rgba(255, 0, 0, 0.8)' }"
|
|
49
|
+
/>
|
|
50
|
+
|
|
51
|
+
<img :src="image1" :style="{ height: 100 }" />
|
|
52
|
+
<div
|
|
53
|
+
id="DivAnchor3"
|
|
54
|
+
:style="{ width: 100, backgroundColor: 'rgba(255, 0, 0, 0.8)' }"
|
|
55
|
+
/>
|
|
56
|
+
<img :src="image1" :style="{ height: 100 }" />
|
|
57
|
+
</JsvFlexDiv>
|
|
58
|
+
</template>
|
|
59
|
+
|
|
60
|
+
<style scoped></style>
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { JsvFlexDiv } from "jsview";
|
|
3
|
+
import image1 from "./images/1.png";
|
|
4
|
+
import image2 from "./images/2.png";
|
|
5
|
+
import image3 from "./images/3.png";
|
|
6
|
+
import image4 from "./images/4.jpg";
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<template>
|
|
10
|
+
<!-- 测试aligneContent:center, 内容进行stretch的场景, 有剩余 -->
|
|
11
|
+
<JsvFlexDiv
|
|
12
|
+
:style="{
|
|
13
|
+
width: 300,
|
|
14
|
+
height: 400,
|
|
15
|
+
flexDirection: 'row',
|
|
16
|
+
justifyContent: 'center',
|
|
17
|
+
alignItems: 'stretch',
|
|
18
|
+
flexWrap: 'wrap',
|
|
19
|
+
alignContent: 'center',
|
|
20
|
+
}"
|
|
21
|
+
>
|
|
22
|
+
<div
|
|
23
|
+
:style="{
|
|
24
|
+
height: 40,
|
|
25
|
+
width: 300,
|
|
26
|
+
fontSize: 15,
|
|
27
|
+
lineHeight: 18,
|
|
28
|
+
color: '#FFFFFF',
|
|
29
|
+
textAlign: 'center',
|
|
30
|
+
}"
|
|
31
|
+
>
|
|
32
|
+
{{ "测试多行aligneContent : center,\n 内容进行stretch的场景,有剩余" }}
|
|
33
|
+
</div>
|
|
34
|
+
<img :src="image1" :style="{ height: 50 }" />
|
|
35
|
+
<img :src="image1" :style="{ height: 80 }" />
|
|
36
|
+
<div
|
|
37
|
+
id="DivAnchor1"
|
|
38
|
+
:style="{ width: 20, backgroundColor: 'rgba(255, 0, 0, 0.8)' }"
|
|
39
|
+
/>
|
|
40
|
+
<img :src="image1" :style="{ height: 70 }" />
|
|
41
|
+
|
|
42
|
+
<img :src="image1" :style="{ height: 70 }" />
|
|
43
|
+
<img :src="image1" :style="{ height: 80 }" />
|
|
44
|
+
<img :src="image1" :style="{ height: 60 }" />
|
|
45
|
+
<img :src="image1" :style="{ height: 30 }" />
|
|
46
|
+
<div
|
|
47
|
+
id="DivAnchor2"
|
|
48
|
+
:style="{ width: 60, backgroundColor: 'rgba(255, 0, 0, 0.8)' }"
|
|
49
|
+
/>
|
|
50
|
+
|
|
51
|
+
<img :src="image1" :style="{ height: 100 }" />
|
|
52
|
+
<div
|
|
53
|
+
id="DivAnchor3"
|
|
54
|
+
:style="{ width: 100, backgroundColor: 'rgba(255, 0, 0, 0.8)' }"
|
|
55
|
+
/>
|
|
56
|
+
<img :src="image1" :style="{ height: 100 }" />
|
|
57
|
+
</JsvFlexDiv>
|
|
58
|
+
</template>
|
|
59
|
+
|
|
60
|
+
<style scoped></style>
|
|
Binary file
|
package/FocusMoveStyle/App.vue
CHANGED
|
@@ -3,6 +3,11 @@ import { JsvNinePatch, getKeyFramesGroup } from "jsview";
|
|
|
3
3
|
import { reactive, onBeforeUnmount } from "vue";
|
|
4
4
|
|
|
5
5
|
const props = defineProps({
|
|
6
|
+
//为了确保多个keyframe动画不重名, 需要传递id
|
|
7
|
+
id: {
|
|
8
|
+
type: String,
|
|
9
|
+
required: true,
|
|
10
|
+
},
|
|
6
11
|
imgUrl: {
|
|
7
12
|
type: String,
|
|
8
13
|
},
|
|
@@ -87,7 +92,7 @@ const changeRect = (rect, doAnim = true) => {
|
|
|
87
92
|
if (first) {
|
|
88
93
|
first = false;
|
|
89
94
|
} else if (doAnim) {
|
|
90
|
-
const animName =
|
|
95
|
+
const animName = props.id + animateChange;
|
|
91
96
|
animateChange = animateChange == 0 ? 1 : 0; // A B 版切换
|
|
92
97
|
addAnimation(preRect, curRect, animName);
|
|
93
98
|
focusSize.animation = `${animName} 0.3s linear`;
|
|
@@ -104,6 +109,10 @@ onBeforeUnmount(() => {
|
|
|
104
109
|
}
|
|
105
110
|
});
|
|
106
111
|
|
|
112
|
+
function onAnimationEnd() {
|
|
113
|
+
console.log("testtest onAnimationEnd")
|
|
114
|
+
}
|
|
115
|
+
|
|
107
116
|
defineExpose({
|
|
108
117
|
changeRect,
|
|
109
118
|
});
|
|
@@ -124,5 +133,6 @@ defineExpose({
|
|
|
124
133
|
:borderOutset="0"
|
|
125
134
|
:animTime="0.2"
|
|
126
135
|
:waitForInit="true"
|
|
136
|
+
:onAnimationEnd="onAnimationEnd"
|
|
127
137
|
></jsv-nine-patch>
|
|
128
138
|
</template>
|
|
@@ -297,7 +297,7 @@ const onKeyDown = (ev) => {
|
|
|
297
297
|
/>
|
|
298
298
|
</template>
|
|
299
299
|
<template #background>
|
|
300
|
-
<creep-focus v-if="showFocus" ref="creepFocus" :imgUrl="redCircle">
|
|
300
|
+
<creep-focus v-if="showFocus" ref="creepFocus" :imgUrl="redCircle" :id="'child' + props.query.index">
|
|
301
301
|
</creep-focus>
|
|
302
302
|
</template>
|
|
303
303
|
</list-widget>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
* @Author: ChenChanghua
|
|
3
|
+
* @Date: 2022-04-20 21:05:26
|
|
4
|
+
* @LastEditors: ChenChanghua
|
|
5
|
+
* @LastEditTime: 2022-07-08 11:16:52
|
|
6
|
+
* @Description: file content
|
|
7
|
+
-->
|
|
8
|
+
<script setup>
|
|
9
|
+
import { ref, reactive, onMounted } from "vue";
|
|
10
|
+
import { useRouter } from "vue-router";
|
|
11
|
+
import { jJsvRuntimeBridge } from "jsview";
|
|
12
|
+
import TestFrame2 from "./TestFrame2.vue";
|
|
13
|
+
|
|
14
|
+
const UseTestFrame = TestFrame2;
|
|
15
|
+
|
|
16
|
+
const router = useRouter();
|
|
17
|
+
|
|
18
|
+
const _onKeyDown = (ev) => {
|
|
19
|
+
if (ev.keyCode == 8 || ev.keyCode == 27 || ev.keyCode == 10000) {
|
|
20
|
+
router.go(-1); // 有router时,是从DemoHomepage进入,回退
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return true;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
onMounted(() => {
|
|
27
|
+
jJsvRuntimeBridge.notifyPageLoaded();
|
|
28
|
+
});
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
<template>
|
|
32
|
+
<jsv-focus-block
|
|
33
|
+
autoFocus
|
|
34
|
+
:onAction="{
|
|
35
|
+
onKeyDown: _onKeyDown,
|
|
36
|
+
}"
|
|
37
|
+
>
|
|
38
|
+
<UseTestFrame />
|
|
39
|
+
</jsv-focus-block>
|
|
40
|
+
</template>
|
|
41
|
+
|
|
42
|
+
<style scoped></style>
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
* @Author: ChenChanghua
|
|
3
|
+
* @Date: 2022-04-20 21:05:26
|
|
4
|
+
* @LastEditors: ChenChanghua
|
|
5
|
+
* @LastEditTime: 2022-07-08 11:16:52
|
|
6
|
+
* @Description: file content
|
|
7
|
+
-->
|
|
8
|
+
<script setup>
|
|
9
|
+
import image1 from "./images/1.png";
|
|
10
|
+
import { JsvScreenFlex } from "jsview";
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<template>
|
|
14
|
+
<!-- 测试aligneContent未设置, 内容进行stretch的场景 -->
|
|
15
|
+
<JsvScreenFlex
|
|
16
|
+
:style="{
|
|
17
|
+
flexDirection: 'row',
|
|
18
|
+
justifyContent: 'flex-start',
|
|
19
|
+
alignItems: 'flex-start',
|
|
20
|
+
}"
|
|
21
|
+
background="https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/BackgroundLongmao.jpg"
|
|
22
|
+
>
|
|
23
|
+
<div
|
|
24
|
+
id="DivAnchor1"
|
|
25
|
+
:style="{
|
|
26
|
+
width: 50,
|
|
27
|
+
height: 50,
|
|
28
|
+
backgroundColor: '#00F000',
|
|
29
|
+
}"
|
|
30
|
+
/>
|
|
31
|
+
<div
|
|
32
|
+
:style="{
|
|
33
|
+
width: 50,
|
|
34
|
+
height: 50,
|
|
35
|
+
backgroundColor: '#0000F0',
|
|
36
|
+
}"
|
|
37
|
+
/>
|
|
38
|
+
</JsvScreenFlex>
|
|
39
|
+
|
|
40
|
+
<JsvScreenFlex
|
|
41
|
+
:style="{
|
|
42
|
+
flexDirection: 'row',
|
|
43
|
+
justifyContent: 'center',
|
|
44
|
+
alignItems: 'center',
|
|
45
|
+
}"
|
|
46
|
+
>
|
|
47
|
+
<div
|
|
48
|
+
id="DivAnchor2"
|
|
49
|
+
:style="{
|
|
50
|
+
width: 200,
|
|
51
|
+
height: 200,
|
|
52
|
+
backgroundColor: '#00F000',
|
|
53
|
+
}"
|
|
54
|
+
/>
|
|
55
|
+
<div
|
|
56
|
+
:style="{
|
|
57
|
+
width: 200,
|
|
58
|
+
height: 200,
|
|
59
|
+
backgroundColor: '#0000F0',
|
|
60
|
+
}"
|
|
61
|
+
/>
|
|
62
|
+
</JsvScreenFlex>
|
|
63
|
+
|
|
64
|
+
<JsvScreenFlex
|
|
65
|
+
:style="{
|
|
66
|
+
flexDirection: 'row',
|
|
67
|
+
justifyContent: 'flex-end',
|
|
68
|
+
alignItems: 'flex-end',
|
|
69
|
+
}"
|
|
70
|
+
>
|
|
71
|
+
<div
|
|
72
|
+
id="DivAnchor3"
|
|
73
|
+
:style="{
|
|
74
|
+
width: 300,
|
|
75
|
+
height: 300,
|
|
76
|
+
}"
|
|
77
|
+
>
|
|
78
|
+
<div
|
|
79
|
+
:style="{
|
|
80
|
+
top: 10,
|
|
81
|
+
left: 10,
|
|
82
|
+
width: 280,
|
|
83
|
+
height: 280,
|
|
84
|
+
backgroundColor: '#00F000',
|
|
85
|
+
}"
|
|
86
|
+
/>
|
|
87
|
+
</div>
|
|
88
|
+
<div
|
|
89
|
+
:style="{
|
|
90
|
+
width: 300,
|
|
91
|
+
height: 300,
|
|
92
|
+
}"
|
|
93
|
+
>
|
|
94
|
+
<div
|
|
95
|
+
:style="{
|
|
96
|
+
top: 10,
|
|
97
|
+
left: 10,
|
|
98
|
+
width: 280,
|
|
99
|
+
height: 280,
|
|
100
|
+
backgroundColor: '#0000F0',
|
|
101
|
+
}"
|
|
102
|
+
/>
|
|
103
|
+
</div>
|
|
104
|
+
</JsvScreenFlex>
|
|
105
|
+
</template>
|
|
106
|
+
|
|
107
|
+
<style scoped></style>
|
|
Binary file
|
package/HashHistory/App.vue
CHANGED
|
@@ -21,6 +21,7 @@ let topRef = shallowRef(null);
|
|
|
21
21
|
let routePage = shallowRef(null);
|
|
22
22
|
let currentRouter;
|
|
23
23
|
if (props.routePath) {
|
|
24
|
+
// 向主Router插入新路径定义
|
|
24
25
|
const currentRoute = useRoute();
|
|
25
26
|
currentRouter = useRouter();
|
|
26
27
|
|
|
@@ -38,6 +39,7 @@ if (props.routePath) {
|
|
|
38
39
|
|
|
39
40
|
currentRouter.replace(props.routePath + redirectPath); // 自动跳转到redirectPath
|
|
40
41
|
} else {
|
|
42
|
+
// 主Router就是自己
|
|
41
43
|
currentRouter = router;
|
|
42
44
|
}
|
|
43
45
|
currentRouter.afterEach(() => {
|
|
@@ -63,7 +65,11 @@ onMounted(() => {
|
|
|
63
65
|
<component
|
|
64
66
|
:is="Component"
|
|
65
67
|
ref="routePage"
|
|
66
|
-
class="
|
|
68
|
+
class="childComponentStyle"
|
|
69
|
+
:style="{
|
|
70
|
+
top:150,
|
|
71
|
+
overflow:'hidden'
|
|
72
|
+
}"
|
|
67
73
|
@requestFocus="onRequestFocus"
|
|
68
74
|
/>
|
|
69
75
|
</router-view>
|
|
@@ -96,11 +102,9 @@ onMounted(() => {
|
|
|
96
102
|
background-color: #00f000;
|
|
97
103
|
}
|
|
98
104
|
|
|
99
|
-
.
|
|
105
|
+
.childComponentStyle {
|
|
100
106
|
left: 0;
|
|
101
|
-
top: 150;
|
|
102
107
|
width: 1920;
|
|
103
108
|
height: 930;
|
|
104
|
-
overflow: hidden;
|
|
105
109
|
}
|
|
106
110
|
</style>
|