@shijiu/jsview-vue-samples 2.3.151-test.0 → 2.3.728-alpha.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/ABImageAlt/App.vue +114 -0
- package/ABImageAlt/Item.vue +133 -0
- package/{MetroWidgetDemos/SkeletonDiagram/assets/imageList.json → ABImageAlt/assets/imageList.js} +9 -1
- package/ABImageAlt/data.js +17 -0
- package/AI_Check_Rules.txt +5 -0
- package/AnimPicture/App.vue +20 -10
- package/ApicSwitch/App.vue +90 -0
- package/ApicSwitch/TabItem.vue +65 -0
- package/ApicSwitch/WebpShow.vue +24 -0
- package/ApicSwitch/data.js +50 -0
- package/Basic/AI_skills_update.md +1 -0
- package/Basic/components/div/ColorFormatTest.vue +93 -0
- package/Basic/components/div/DivRadius.vue +97 -15
- package/Basic/components/div/DivTag3Group.vue +30 -0
- package/Basic/components/img/ImageType.vue +65 -0
- package/Basic/components/panel/Panel2.vue +13 -1
- package/Basic/components/text/TextAlign.vue +7 -1
- package/BlobLoadTest/App.vue +201 -0
- package/BreakLinesApi/App.vue +82 -0
- package/CanvasDrawChart/App.vue +11 -0
- package/CanvasDrawChart/Graph1.vue +104 -0
- package/CanvasDrawChart/Graph2.vue +115 -0
- package/DemoForOperator/Blur/Blur.vue +1 -1
- package/DemoForOperator/Blur/BlurInOut/BlurInOut.vue +49 -23
- package/DemoForOperator/Blur/BlurInOut/StaticBgSlide.vue +1 -1
- package/DemoForOperator/Blur/BlurPopup/BlurPopup.vue +156 -20
- package/DemoForOperator/BookFlip/App.vue +1 -1
- package/DemoForOperator/Bounce/FreeMoveBuilder.js +1 -1
- package/DemoForOperator/Firework1/App.vue +12 -1
- package/DemoForOperator/Firework1/Fireworks.vue +18 -0
- package/DemoForOperator/FlipPage/FlipPage/FlipPage.vue +1 -0
- package/DemoForOperator/Focus/Alpha/Item.vue +1 -0
- package/DemoForOperator/Focus/Light/Item.vue +1 -0
- package/DemoForOperator/Focus/Normal/Item.vue +1 -0
- package/DemoForOperator/Genie/App.vue +20 -6
- package/DemoForOperator/Genie/App2.vue +61 -0
- package/DemoForOperator/Genie/geniePakcer/GenieImage.vue +298 -0
- package/DemoForOperator/Genie/geniePakcer/GenieSlot.vue +292 -0
- package/DemoForOperator/Genie/geniePakcer/GenieTools.ts +463 -0
- package/DemoForOperator/Jigsaw/JigsawFull.vue +12 -7
- package/DemoForOperator/Jigsaw/JigsawSingle.vue +13 -7
- package/DemoForOperator/LongChatBox/App.vue +13 -13
- package/DemoForOperator/LongChatBox/Bubble.vue +78 -66
- package/DemoForOperator/LongChatBox/LongChat.vue +67 -36
- package/DemoForOperator/LongChatBox/testData.js +7 -44
- package/DemoForOperator/Sound/Bounce/FreeMoveBuilder.js +1 -1
- package/DemoForOperator/routeList.js +8 -2
- package/DemoHomepage/App.vue +74 -1
- package/DemoHomepage/components/BodyFrame.vue +5 -0
- package/DemoHomepage/components/TabFrame.vue +1 -1
- package/DemoHomepage/router.js +749 -165
- package/DemoHomepage/views/Homepage.vue +60 -2
- package/DemoHomepage/watchTest.vue +50 -0
- package/DomRenderer/App.vue +133 -0
- package/FilterDemo/AnimatePic.vue +63 -17
- package/FilterDemo/App.vue +3 -3
- package/FlexCellDemo/AI_skills_update.md +4 -0
- package/FlexCellDemo/TestFrame1.vue +12 -2
- package/FlexCellDemo/TestFrame2.vue +10 -1
- package/FlexCellDemo/TestFrame3.vue +114 -59
- package/FpsLimit/App.vue +102 -0
- package/FreeMove/App.vue +24 -279
- package/FreeMove/TestScene1.vue +260 -0
- package/FreeMove/TestScene3.vue +431 -0
- package/FreeMoveChildAttract/App.vue +18 -8
- package/FreeMoveLink/App.vue +51 -22
- package/Hover/App.vue +144 -0
- package/HttpRequestSSE/SSEReader.js +200 -0
- package/ImpactStop/App.vue +2 -2
- package/Input/FullKeyboard.vue +3 -3
- package/Input/InputPanel.vue +63 -3
- package/JsvLine/App.vue +53 -38
- package/LatexDemo/App.vue +3 -1
- package/LatexFormula/App.vue +196 -0
- package/LongImage/App.vue +1 -1
- package/LongImage/LongImageScroll.vue +111 -46
- package/LongImage/Scroll.vue +28 -9
- package/LongText/LongTextScroll.vue +14 -1
- package/Markdown/App.vue +36 -0
- package/Markdown/Bubble.vue +109 -0
- package/Markdown/LongChat.vue +216 -0
- package/Markdown/data.js +633 -0
- package/MetroWidgetDemos/AI_skills_update.md +2 -0
- package/MetroWidgetDemos/EpgFlowListType/App.vue +206 -0
- package/MetroWidgetDemos/EpgFlowListType/components/ContentCard.vue +105 -0
- package/MetroWidgetDemos/EpgFlowListType/components/FloorSection.vue +131 -0
- package/MetroWidgetDemos/EpgFlowListType/components/LeftTabItem.vue +41 -0
- package/MetroWidgetDemos/EpgFlowListType/data.js +78 -0
- package/MetroWidgetDemos/ListExpand/ChildItem.vue +130 -0
- package/MetroWidgetDemos/ListExpand/ExpandItem.vue +375 -0
- package/MetroWidgetDemos/ListExpand/ExpandItem1.vue +403 -0
- package/MetroWidgetDemos/ListExpand/assets/arrow-down.png +0 -0
- package/MetroWidgetDemos/ListExpand/assets/up-arrow.png +0 -0
- package/MetroWidgetDemos/ListExpand/components/WidgetListHandler.vue +150 -0
- package/MetroWidgetDemos/ListExpand/index.vue +88 -0
- package/MetroWidgetDemos/ListExpand/list.js +2421 -0
- package/MetroWidgetDemos/RefreshDemo/App.vue +14 -1
- package/MetroWidgetDemos/RenderAccelerate/App.vue +142 -0
- package/MetroWidgetDemos/RenderAccelerate/AppPage.vue +78 -0
- package/MetroWidgetDemos/RenderAccelerate/AppTab.vue +62 -0
- package/MetroWidgetDemos/RenderAccelerate/ContentItem.vue +409 -0
- package/MetroWidgetDemos/RenderAccelerate/Item.vue +67 -0
- package/MetroWidgetDemos/RenderAccelerate/TabItem.vue +100 -0
- package/MetroWidgetDemos/RenderAccelerate/ViewSwiper.vue +215 -0
- package/MetroWidgetDemos/RenderAccelerate/WidgetItem.vue +107 -0
- package/MetroWidgetDemos/SkeletonDiagram/App.vue +35 -8
- package/MetroWidgetDemos/SkeletonDiagram/Item.vue +11 -2
- package/MetroWidgetDemos/SkeletonDiagram/assets/imageList.js +245 -0
- package/MetroWidgetDemos/SkeletonDiagram/data.js +3 -3
- package/MetroWidgetDemos/SpatialNav/App.vue +177 -0
- package/MetroWidgetDemos/SpatialNav/Buttons.vue +83 -0
- package/MetroWidgetDemos/SpatialNav/CustomFocus.vue +57 -0
- package/MetroWidgetDemos/{TripleWidget → SpatialNav}/Item.vue +1 -8
- package/MetroWidgetDemos/{TripleWidget/WidgetItem.vue → SpatialNav/SimpleFloor.vue} +14 -45
- package/MetroWidgetDemos/SpatialNav/StepMw.vue +113 -0
- package/MetroWidgetDemos/SpatialNav/TabContent/TabContent.vue +185 -0
- package/MetroWidgetDemos/SpatialNav/TripleSection/TripleSection.vue +69 -0
- package/MetroWidgetDemos/SpatialNav/TripleSection/WidgetItem.vue +100 -0
- package/MetroWidgetDemos/SpatialNav/TvSection/List.vue +75 -0
- package/MetroWidgetDemos/SpatialNav/TvSection/TvSection.vue +91 -0
- package/MetroWidgetDemos/basic2/App.vue +407 -0
- package/MetroWidgetDemos/basic2/Item.vue +68 -0
- package/MetroWidgetDemos/direction/App.vue +22 -0
- package/MetroWidgetDemos/gazeFocusDiff/App.vue +126 -0
- package/MetroWidgetDemos/gazeFocusDiff/Item.vue +87 -0
- package/MetroWidgetDemos/minimalUsage/App.vue +66 -0
- package/MetroWidgetDemos/minimalUsage/Item.vue +54 -0
- package/MetroWidgetDemos/ninePatchFocusPage/App.vue +23 -7
- package/MetroWidgetDemos/ninePatchFocusPage/Item.vue +7 -5
- package/MetroWidgetDemos/ninePatchFocusPage/focusConstants.js +2 -0
- package/MetroWidgetDemos/routeList.js +216 -12
- package/MetroWidgetDemos/slideSetting/App.vue +288 -99
- package/MetroWidgetDemos/zIndex/App.vue +117 -0
- package/MetroWidgetDemos/zIndex/Item.vue +61 -0
- package/NinePatchTester/App.vue +24 -31
- package/PreDecode/App.vue +140 -0
- package/ReactiveTest/App.vue +115 -0
- package/ReactiveTest/Item.vue +92 -0
- package/ReactiveTest/assets/imageList.js +245 -0
- package/ReactiveTest/component/TestSmartDiv.vue +50 -0
- package/ReactiveTest/component/TestSmartDivSrcList.vue +74 -0
- package/ReactiveTest/component/TestSmartImage.vue +46 -0
- package/ReactiveTest/component/TestSmartImageSrcList.vue +90 -0
- package/ReactiveTest/component/TestSmartImageStyle.vue +41 -0
- package/ReactiveTest/data.js +49 -0
- package/ScreenToBlob/App.vue +250 -0
- package/ScrollBoxTest/App.vue +52 -28
- package/ScrollBoxTest/ClipBar.vue +64 -2
- package/ScrollBoxTest/NinePatchBar.vue +64 -2
- package/ScrollBoxTest/SizeDivBar.vue +64 -2
- package/SecTorTest/App.vue +9 -3
- package/SpringFestival/SpringFestivalScene/FreeMoveBuilder.js +3 -3
- package/SyncDecode/App.vue +137 -0
- package/TextSizeLimit/App.vue +211 -0
- package/TextureAnimation/App3.vue +11 -1
- package/TouchWidget/App.vue +90 -5
- package/TouchWidget/WidgetItem.vue +1 -0
- package/TransitPage/App.vue +2 -0
- package/assets/logo.png +0 -0
- package/package.json +1 -1
- package/DemoForOperator/BookFlip/BookFlip/FlipPage.vue +0 -179
- package/DemoForOperator/BookFlip/BookFlip/FlippingBook.vue +0 -310
- package/DemoForOperator/BookFlip/BookFlip/flip.glsl +0 -135
- package/DemoForOperator/Genie/geniePakcer/Genie.vue +0 -741
- package/DemoForOperator/LongChatBox/TextManager.ts +0 -147
- package/DemoForOperator/LongChatBox/VirtualList.vue +0 -298
- package/DemoForOperator/LongChatBox/utile.js +0 -331
- package/DivMetroPerformance/App.vue +0 -157
- package/DivMetroPerformance/Item.vue +0 -58
- package/DivMetroPerformance/assets/bg.jpg +0 -0
- package/DivMetroPerformance/assets/coupon_content.png +0 -0
- package/DivMetroPerformance/assets/coupon_left.png +0 -0
- package/DivMetroPerformance/assets/coupon_mid.png +0 -0
- package/DivMetroPerformance/assets/coupon_right.png +0 -0
- package/DivMetroPerformance/assets/focus_border.png +0 -0
- package/DivMetroPerformance/assets/holder_logo.png +0 -0
- package/DivMetroPerformance/assets/jrbm.png +0 -0
- package/DivMetroPerformance/assets/line_left.png +0 -0
- package/DivMetroPerformance/assets/line_mid.png +0 -0
- package/DivMetroPerformance/assets/line_right.png +0 -0
- package/DivMetroPerformance/assets/loading.png +0 -0
- package/DivMetroPerformance/assets/logo.png +0 -0
- package/DivMetroPerformance/assets/mcjx.png +0 -0
- package/DivMetroPerformance/assets/tao.png +0 -0
- package/DivMetroPerformance/assets/tmall.png +0 -0
- package/DivMetroPerformance/border.png +0 -0
- package/DivMetroPerformance/components/ContentItem.vue +0 -384
- package/DivMetroPerformance/components/MyTab.vue +0 -129
- package/DivMetroPerformance/data.js +0 -124
- package/DivMetroPerformance/utils/GridItem.vue +0 -28
- package/DivMetroPerformance/utils/GridPlate.vue +0 -85
- package/MediaDemo/App.vue +0 -127
- package/MediaDemo/assets/audio-poster.png +0 -0
- package/MediaDemo/components/Button.vue +0 -69
- package/MediaDemo/components/Controllor.vue +0 -286
- package/MediaDemo/components/StatusBar.vue +0 -100
- package/MediaDemo/components/frames/AudioFrame.vue +0 -39
- package/MediaDemo/components/frames/AudioPoster.vue +0 -48
- package/MediaDemo/components/frames/MediaFrame.vue +0 -153
- package/MediaDemo/components/frames/VideoFrame.vue +0 -39
- package/MetroWidgetDemos/TripleWidget/App.vue +0 -87
- package/MetroWidgetDemos/TripleWidget/SWidgetItem.vue +0 -99
- package/Parkour/App.vue +0 -13
- package/Parkour/Common/Context.js +0 -21
- package/Parkour/Common/MatchmanInfo.js +0 -62
- package/Parkour/Common/Random.js +0 -61
- package/Parkour/Common/Sound.js +0 -50
- package/Parkour/appConfig/HOW_TO_CONFIG.md +0 -20
- package/Parkour/appConfig/app.config.mjs +0 -5
- package/Parkour/appConfig/app_sign_private_key_sample.crt +0 -28
- package/Parkour/appConfig/app_sign_public_key_sample.pem +0 -9
- package/Parkour/appConfig/jsview.config.mjs +0 -39
- package/Parkour/assets/Bgimages/bg1.png +0 -0
- package/Parkour/assets/Bgimages/bg2.png +0 -0
- package/Parkour/assets/Bgimages/bg3.png +0 -0
- package/Parkour/assets/Bgimages/bg4.png +0 -0
- package/Parkour/assets/Bgimages/bg5.png +0 -0
- package/Parkour/assets/audio/jump.mp3 +0 -0
- package/Parkour/assets/audio/lose.mp3 +0 -0
- package/Parkour/assets/role_skin1/fail.json +0 -44
- package/Parkour/assets/role_skin1/fail.png +0 -0
- package/Parkour/assets/role_skin1/jump_down.json +0 -20
- package/Parkour/assets/role_skin1/jump_down.png +0 -0
- package/Parkour/assets/role_skin1/jump_up.json +0 -44
- package/Parkour/assets/role_skin1/jump_up.png +0 -0
- package/Parkour/assets/role_skin1/roll.json +0 -44
- package/Parkour/assets/role_skin1/roll.png +0 -0
- package/Parkour/assets/role_skin1/run.json +0 -52
- package/Parkour/assets/role_skin1/run.png +0 -0
- package/Parkour/components/Backdrop.vue +0 -61
- package/Parkour/components/GameSence.vue +0 -602
- package/Parkour/components/Matchman.vue +0 -85
- package/TextureAnimation/utils/FrameCanvasStore.ts +0 -68
- package/TextureAnimation/utils/RotateFrame.vue +0 -146
- package/TextureAnimation/utils/circleHaloMask.png +0 -0
- package/ThrowMoveDemo/AccelerateDemo.vue +0 -85
- package/ThrowMoveDemo/App.vue +0 -104
- package/ThrowMoveDemo/LRParabolicDemo.vue +0 -101
- package/ThrowMoveDemo/TargetDemo.vue +0 -87
- package/ThrowMoveDemo/UDParabolicDemo.vue +0 -92
- /package/{AnimPicture/assets → assets}/animated_webp.webp +0 -0
- /package/{AnimPicture/assets → assets}/ball_3.webp +0 -0
- /package/{AnimPicture/assets → assets}/girl_run.gif +0 -0
- /package/{AnimPicture/assets → assets}/quan.webp +0 -0
package/DemoHomepage/router.js
CHANGED
|
@@ -15,119 +15,266 @@ let routeList = [
|
|
|
15
15
|
keepAlive: true // 需要被缓存(测试Router keep alive机制)
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
|
+
|
|
19
|
+
// ========== feature ==========
|
|
20
|
+
/*
|
|
21
|
+
* 基础示例合集
|
|
22
|
+
*
|
|
23
|
+
* 对应的应用场景:
|
|
24
|
+
* div, img标签, jsview所兼容的css设置样例
|
|
25
|
+
* (包含通过transition和transform属性来简单实现动画的场景)
|
|
26
|
+
*/
|
|
18
27
|
{
|
|
19
28
|
meta: { nameText: '基础示例合集', },
|
|
20
29
|
name: "feature-基础示例合集",
|
|
21
30
|
path: '/feature/Basic',
|
|
22
31
|
component: () => import('@shijiu/jsview-vue-samples/Basic/App.vue'),
|
|
23
32
|
},
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Dom文本渲染
|
|
36
|
+
*
|
|
37
|
+
* 对应场景:
|
|
38
|
+
* 题库后台给的数据是一段 dom 文本需要模仿浏览器显示出来
|
|
39
|
+
*/
|
|
40
|
+
{
|
|
41
|
+
meta: { nameText: 'Dom文本渲染', },
|
|
42
|
+
name: "feature-Dom文本渲染",
|
|
43
|
+
path: '/feature/DomRenderer',
|
|
44
|
+
component: () => import('@shijiu/jsview-vue-samples/DomRenderer/App.vue'),
|
|
45
|
+
},
|
|
46
|
+
|
|
47
|
+
/*
|
|
48
|
+
* 截图Blob
|
|
49
|
+
*
|
|
50
|
+
* 对应的应用场景:
|
|
51
|
+
* 1. 对div截图后, 生成blob, 然后用div或者img标签展示此blob的图像的场景
|
|
52
|
+
* 2. 使用图片url来生成blob, 然后用div或者img标签展示此blob的图像的场景
|
|
53
|
+
*/
|
|
54
|
+
{
|
|
55
|
+
meta: { nameText: '截图Blob', },
|
|
56
|
+
name: 'feature-截图Blob',
|
|
57
|
+
path: '/feature/ScreenToBlob',
|
|
58
|
+
component: () => import('@shijiu/jsview-vue-samples/ScreenToBlob/App.vue'),
|
|
59
|
+
},
|
|
60
|
+
|
|
24
61
|
// {
|
|
25
62
|
// meta: { nameText: 'FreeMoveResize', },
|
|
26
63
|
// path: '/feature/FreeMoveResize',
|
|
27
64
|
// component: () => import('@shijiu/jsview-vue-samples/FreeMoveResize/App.vue'),
|
|
28
65
|
// },
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
meta: { nameText: '海报图收放组件', },
|
|
43
|
-
name: "Operations-海报图收放组件",
|
|
44
|
-
path: '/Operations/PosterPacker',
|
|
45
|
-
component: () => import('jsview-vue-samples/PosterPacker/App.vue'),
|
|
66
|
+
|
|
67
|
+
/*
|
|
68
|
+
* Blob加载测试
|
|
69
|
+
*
|
|
70
|
+
* 对应的应用场景:
|
|
71
|
+
* 使用XMLHttpRequest请求blob,然后使用BlobApi.createObjectURL来创建blob的URL,
|
|
72
|
+
* 并通过img标签展示blob的图像的场景
|
|
73
|
+
*/
|
|
74
|
+
{
|
|
75
|
+
meta: { nameText: 'Blob加载测试', },
|
|
76
|
+
name: "feature-Blob加载测试",
|
|
77
|
+
path: '/feature/BlobLoadTest',
|
|
78
|
+
component: () => import('@shijiu/jsview-vue-samples/BlobLoadTest/App.vue'),
|
|
46
79
|
},
|
|
80
|
+
|
|
81
|
+
/*
|
|
82
|
+
* div快照功能
|
|
83
|
+
*
|
|
84
|
+
* 对应的应用场景:
|
|
85
|
+
* 对div截图后, 用另一个div或者img标签展示截图的图像的场景
|
|
86
|
+
*/
|
|
47
87
|
{
|
|
48
88
|
meta: { nameText: 'div快照功能', },
|
|
49
89
|
name: "feature-div快照功能",
|
|
50
90
|
path: '/feature/BakeViewDemo',
|
|
51
91
|
component: () => import('@shijiu/jsview-vue-samples/BakeViewDemo/App.vue'),
|
|
52
92
|
},
|
|
93
|
+
|
|
94
|
+
/*
|
|
95
|
+
* FlexDemo
|
|
96
|
+
*
|
|
97
|
+
* 对应的应用场景:
|
|
98
|
+
* 使用Flex布局的场景, 注意JsvFlexDiv组件只支持一层子的flex, 多层场景要使用JsvFlexCell嵌套
|
|
99
|
+
*/
|
|
53
100
|
{
|
|
54
101
|
meta: { nameText: 'FlexDemo', },
|
|
55
102
|
name: "feature-FlexDemo",
|
|
56
103
|
path: '/feature/FlexDemo',
|
|
57
104
|
component: () => import('@shijiu/jsview-vue-samples/FlexCellDemo/App.vue')
|
|
58
105
|
},
|
|
106
|
+
|
|
107
|
+
/*
|
|
108
|
+
* ScreenFlex
|
|
109
|
+
*
|
|
110
|
+
* 对应的应用场景:
|
|
111
|
+
* 展示用 JsvScreenFlex 组件实现全屏范围的居中对齐, 右上角和左下角对齐的场景
|
|
112
|
+
* 主要解决在非16:9比例的屏幕上, 制作自适应铺满全屏的UI时如何进行对齐的场景
|
|
113
|
+
* PS: 普通的16:9应用上非16:9屏幕时, 建议采用背景图铺满, 内容通过JsvScreenFlex居中显示的布局
|
|
114
|
+
*/
|
|
59
115
|
{
|
|
60
116
|
meta: { nameText: 'ScreenFlex', },
|
|
61
117
|
name: "feature-ScreenFlex",
|
|
62
118
|
path: '/feature/ScreenFlex',
|
|
63
119
|
component: () => import('@shijiu/jsview-vue-samples/FullScreenFlex/App.vue')
|
|
64
120
|
},
|
|
121
|
+
|
|
122
|
+
/*
|
|
123
|
+
* 连接线Demo
|
|
124
|
+
*
|
|
125
|
+
* 对应的应用场景:
|
|
126
|
+
* 1. 绘制树状关系图, 脑图等图表场景中绘制连线用
|
|
127
|
+
* 2. 解决常规div来绘制连线时无法做到的问题,具体如下:
|
|
128
|
+
* Z字形连线中其中一个弯折是圆弧或者两个弯折是圆弧的场景需求
|
|
129
|
+
*/
|
|
65
130
|
{
|
|
66
131
|
meta: { nameText: '连接线Demo', },
|
|
67
132
|
name: "feature-连接线Demo",
|
|
68
133
|
path: '/feature/ConnectLine',
|
|
69
134
|
component: () => import('@shijiu/jsview-vue-samples/ConnectLine/App.vue')
|
|
70
135
|
},
|
|
136
|
+
|
|
137
|
+
/*
|
|
138
|
+
* 离散焦点自动处理
|
|
139
|
+
* 源码是一个测试样例, AI编程时不需要参考, 原理就是界面上有位置任意的
|
|
140
|
+
* 有style.width和style.height尺寸的JsvFocusBlock组件,
|
|
141
|
+
* 当上下左右键在这个FocusBlock的onKeyXXX或者onDispatchXXXX处理中都return了false时(表示都不拦截和处理这些导航键)
|
|
142
|
+
* 框架会按照这些JsvFocusBlock的布局, 自动在这些jsvFocusBlock之间进行焦点切换
|
|
143
|
+
*
|
|
144
|
+
* 对应的应用场景:
|
|
145
|
+
* 元素简单,且位置不重叠的游戏或运营类场景,EPG等复杂场景不适合
|
|
146
|
+
*/
|
|
71
147
|
{
|
|
72
148
|
meta: { nameText: '离散焦点自动处理', },
|
|
73
149
|
name: "feature-离散焦点自动处理",
|
|
74
150
|
path: '/feature/DispersedFocusControl',
|
|
75
151
|
component: () => import('@shijiu/jsview-vue-samples/DispersedFocusControl/App.vue'),
|
|
76
152
|
},
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
153
|
+
|
|
154
|
+
// 一个简单的空间寻焦算法的样例, 已被自动寻焦样例 DispersedFocusControl 替代
|
|
155
|
+
// {
|
|
156
|
+
// meta: { nameText: '离散焦点分布', },
|
|
157
|
+
// name: "feature-离散焦点分布",
|
|
158
|
+
// path: '/feature/DispersedItemSample',
|
|
159
|
+
// component: () => import('@shijiu/jsview-vue-samples/DispersedItemSample/DispersedItemSample.vue')
|
|
160
|
+
// },
|
|
161
|
+
|
|
162
|
+
/*
|
|
163
|
+
* 饼图测试
|
|
164
|
+
*
|
|
165
|
+
* 对应的应用场景:
|
|
166
|
+
* 需要绘制图表的场景中, 需要绘制饼图的场景, 样例中还提供了调整饼图的分配比例而产生动画的效果。
|
|
167
|
+
* 除了支持屏图(几个扇形构成)外,还支持环形图(扇形只留扇顶弧形构成一个圆环)
|
|
168
|
+
* 使用时一定要注意, 传入的所有内容的合不能大于100%, 可以略小于100%, 不足100%的部分会自动补到最后一项中
|
|
169
|
+
*/
|
|
83
170
|
{
|
|
84
171
|
meta: { nameText: '饼图测试', },
|
|
85
172
|
name: "feature-饼图测试",
|
|
86
173
|
path: '/feature/SecTorTest',
|
|
87
174
|
component: () => import('@shijiu/jsview-vue-samples/SecTorTest/App.vue'),
|
|
88
175
|
},
|
|
176
|
+
|
|
177
|
+
/*
|
|
178
|
+
* TextureStore测试
|
|
179
|
+
*
|
|
180
|
+
* 对应的应用场景:
|
|
181
|
+
* 手搓出可用于<div>标签的style.backgroundImage或者<img>标签的src的图片资源临时url
|
|
182
|
+
* 但此用例只展示 JsvTextureStoreApi 的 canvasTexture 接口的用法,
|
|
183
|
+
* 此样例包含子场景:
|
|
184
|
+
* 和JsvNinePatch配合的的直角框和圆角框
|
|
185
|
+
* 半圆
|
|
186
|
+
* 纯色圆角方块
|
|
187
|
+
* 渐变圆角方块
|
|
188
|
+
*/
|
|
89
189
|
{
|
|
90
190
|
meta: { nameText: 'TextureStore测试', },
|
|
91
191
|
name: "feature-TextureStore测试",
|
|
92
192
|
path: '/feature/TextureStoreTest',
|
|
93
193
|
component: () => import('@shijiu/jsview-vue-samples/TextureStoreTest/App.vue'),
|
|
94
194
|
},
|
|
195
|
+
|
|
196
|
+
/*
|
|
197
|
+
* NinePatch对齐测试
|
|
198
|
+
*
|
|
199
|
+
* 对应的应用场景:
|
|
200
|
+
* 圆角矩形要套一个外边缘框的场景, 且框为纯色的最简解决方法。
|
|
201
|
+
* 使用JsvNinePatch组件, 且图片资源由代码生成(JsvTextureBuilder.buildCircleNinePatchTexture)
|
|
202
|
+
*/
|
|
95
203
|
{
|
|
96
204
|
meta: { nameText: 'NinePatch对齐测试', },
|
|
97
205
|
name: "feature-NinePatch对齐测试",
|
|
98
206
|
path: '/feature/NinePatchTester',
|
|
99
207
|
component: () => import('@shijiu/jsview-vue-samples/NinePatchTester/App.vue'),
|
|
100
208
|
},
|
|
209
|
+
|
|
210
|
+
/*
|
|
211
|
+
* NativeSharedView测试
|
|
212
|
+
*
|
|
213
|
+
* 对应的应用场景:
|
|
214
|
+
* 使用JsvNativeSharedDiv组件并监听其尺寸和位置变化的场景
|
|
215
|
+
*/
|
|
101
216
|
{
|
|
102
217
|
meta: { nameText: 'NativeSharedView测试', },
|
|
103
218
|
name: "feature-NativeSharedView测试",
|
|
104
219
|
path: '/feature/TestNativeSharedView',
|
|
105
220
|
component: () => import('@shijiu/jsview-vue-samples/TestNativeSharedView/App.vue'),
|
|
106
221
|
},
|
|
222
|
+
|
|
223
|
+
/*
|
|
224
|
+
* 仅测试, AI编程时, 不要参考
|
|
225
|
+
* CSS预处理
|
|
226
|
+
*
|
|
227
|
+
*/
|
|
107
228
|
{
|
|
108
229
|
meta: { nameText: 'CSS预处理', },
|
|
109
230
|
name: "feature-CSS预处理",
|
|
110
231
|
path: '/feature/CssPreprocessor',
|
|
111
232
|
component: () => import('@shijiu/jsview-vue-samples/CssPreprocessor/App.vue'),
|
|
112
233
|
},
|
|
234
|
+
|
|
235
|
+
/*
|
|
236
|
+
* 可视化变化通知
|
|
237
|
+
*
|
|
238
|
+
* 对应的应用场景:
|
|
239
|
+
* EPG布局, 监控视频窗口在滑动过程中是否移除屏幕时, 并在移除屏幕时进行播放停止, 移回屏幕时进行播放恢复的场景
|
|
240
|
+
* 以及一些放在MetroWidget中的, 需要关注由于MetroWidget滚动而导致其内容移出/移回屏幕的场景
|
|
241
|
+
*/
|
|
113
242
|
{
|
|
114
243
|
meta: { nameText: '可视化变化通知', },
|
|
115
244
|
name: "feature-可视化变化通知",
|
|
116
245
|
path: '/feature/VisibleSensorDemo',
|
|
117
246
|
component: () => import('@shijiu/jsview-vue-samples/VisibleSensorDemo/App.vue'),
|
|
118
247
|
},
|
|
248
|
+
|
|
249
|
+
/*
|
|
250
|
+
* 仅测试, AI编程时, 不要参考
|
|
251
|
+
* 快速刷新的表格布局组件
|
|
252
|
+
*
|
|
253
|
+
*/
|
|
119
254
|
{
|
|
120
255
|
meta: { nameText: '快速刷新的表格布局组件', },
|
|
121
256
|
name: "feature-快速刷新的表格布局组件",
|
|
122
257
|
path: '/feature/GridDemo',
|
|
123
258
|
component: () => import('@shijiu/jsview-vue-samples/GridDemo/App.vue'),
|
|
124
259
|
},
|
|
260
|
+
|
|
261
|
+
/*
|
|
262
|
+
* 仅测试, AI编程时, 不要参考
|
|
263
|
+
* 有命名空间的焦点切换
|
|
264
|
+
*
|
|
265
|
+
*/
|
|
125
266
|
{
|
|
126
267
|
meta: { nameText: '有命名空间的焦点切换', },
|
|
127
268
|
name: "feature-有命名空间的焦点切换",
|
|
128
269
|
path: '/feature/BasicFocusControl',
|
|
129
270
|
component: () => import('@shijiu/jsview-vue-samples/BasicFocusControl/App.vue'),
|
|
130
271
|
},
|
|
272
|
+
|
|
273
|
+
/*
|
|
274
|
+
* 仅测试, AI编程时, 不要参考
|
|
275
|
+
* Hash方式路由切换
|
|
276
|
+
*
|
|
277
|
+
*/
|
|
131
278
|
{
|
|
132
279
|
meta: { nameText: 'Hash方式路由切换', },
|
|
133
280
|
name: "feature-Hash方式路由切换",
|
|
@@ -135,281 +282,595 @@ let routeList = [
|
|
|
135
282
|
props: { routePath: '/feature/HashHistory' },
|
|
136
283
|
component: () => import('@shijiu/jsview-vue-samples/HashHistory/App.vue'),
|
|
137
284
|
},
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
285
|
+
|
|
286
|
+
/*
|
|
287
|
+
* 设置颜色空间
|
|
288
|
+
*
|
|
289
|
+
// * 对应的应用场景:
|
|
290
|
+
* 海报资源内存使用较大, 愿意以时间换内存时, 可通过如样例那样的
|
|
291
|
+
* 设置data-jsv-img-color-space为RGB_565来节省内存
|
|
292
|
+
* 原理是JsView引擎会自动将解码出来的RGBA_8888图片存储成RGB_565的bitmap以节省一半内存
|
|
293
|
+
* 特别注意: 如果要用JsvPreload进行预加载时,预加载的图片和尺寸和颜色空间要和实际在img标签中设置的完全一致才能有
|
|
294
|
+
* 预加载的效果(预加载效果是加载完后, img标签再展示时就不会因为要一步加载图片而引起闪动的问题)
|
|
295
|
+
*/
|
|
144
296
|
{
|
|
145
297
|
meta: { nameText: '设置颜色空间', },
|
|
146
298
|
name: "feature-设置颜色空间",
|
|
147
299
|
path: '/feature/ColorSpace',
|
|
148
300
|
component: () => import('@shijiu/jsview-vue-samples/ColorSpace/App.vue'),
|
|
149
301
|
},
|
|
302
|
+
|
|
303
|
+
/*
|
|
304
|
+
* 制定Texture尺寸
|
|
305
|
+
*
|
|
306
|
+
* 对应的应用场景:
|
|
307
|
+
* 海报资源内存使用较大, 愿意以时间换内存时, 可通过如样例那样的
|
|
308
|
+
* 设置data-jsv-img-scaledown-tex为true来节省内存
|
|
309
|
+
* 原理是JsView只存储图片压缩尺寸后的bitmap, 而不是原始的尺寸的图片以节省内存
|
|
310
|
+
* 特别注意: 如果要用JsvPreload进行预加载时,预加载的图片和尺寸和颜色空间要和实际在img标签中设置的完全一致才能有
|
|
311
|
+
* 预加载的效果(预加载效果是加载完后, img标签再展示时就不会因为要一步加载图片而引起闪动的问题)
|
|
312
|
+
*/
|
|
150
313
|
{
|
|
151
314
|
meta: { nameText: '制定Texture尺寸', },
|
|
152
315
|
name: "feature-制定Texture尺寸",
|
|
153
316
|
path: '/feature/TextureSize',
|
|
154
317
|
component: () => import('@shijiu/jsview-vue-samples/TextureSize/App.vue'),
|
|
155
318
|
},
|
|
319
|
+
|
|
320
|
+
/*
|
|
321
|
+
* 长文字
|
|
322
|
+
*
|
|
323
|
+
* 对应的应用场景:
|
|
324
|
+
* 需要展示诸如用户协议,大片长端纯文本的场景
|
|
325
|
+
* 此样例也是 JsvScrollBox 组件的典型应用场景, 解决了一个长条形的滚动窗口如何和其右边进度条联动的场景。
|
|
326
|
+
* 同时 JsvScrollBox 支持触控拖动, 触控fling, 进度条点击跳转和鼠标滚动这几个场景
|
|
327
|
+
*
|
|
328
|
+
* 长内容并且右边有可点击快速定位的滚动条的场景。
|
|
329
|
+
* 会用两个 JsvScrollBox 来完成此场景, 一个JsvScrollBox用来展示长内容, 一个JsvScrollBox用来展示滚动条。
|
|
330
|
+
* 用linkName和syncWith来关联两个JsvScrollBox, 使得两个JsvScrollBox的进度保持一致。
|
|
331
|
+
*/
|
|
156
332
|
{
|
|
157
333
|
meta: { nameText: '长文字', },
|
|
158
334
|
name: "feature-长文字",
|
|
159
335
|
path: '/feature/LongText',
|
|
160
336
|
component: () => import('@shijiu/jsview-vue-samples/LongText/App.vue'),
|
|
161
337
|
},
|
|
338
|
+
|
|
339
|
+
/*
|
|
340
|
+
* 长文字Latex
|
|
341
|
+
*
|
|
342
|
+
* 对应的应用场景:
|
|
343
|
+
* 同 “长文字” 样例, 区别只是纯文本中可以有LaTex的写法
|
|
344
|
+
*/
|
|
162
345
|
{
|
|
163
346
|
meta: { nameText: '长文字Latex', },
|
|
164
347
|
name: "feature-长文字Latex",
|
|
165
348
|
path: '/feature/LongTextLatex',
|
|
166
349
|
component: () => import('@shijiu/jsview-vue-samples/LongTextLatex/App.vue'),
|
|
167
350
|
},
|
|
351
|
+
|
|
352
|
+
/*
|
|
353
|
+
* 二维码
|
|
354
|
+
*
|
|
355
|
+
* 对应的应用场景:
|
|
356
|
+
* 所以使用二维码的场景,在JsView中可以通过字符串生成二维码图片并展示
|
|
357
|
+
* 这个是JsvQrcode组件的典型应用场景, 主要展示了如下特性:
|
|
358
|
+
* 1. 字符串同步生成二维码(界面出现时不会一闪, 但是有可能会卡按键操作)
|
|
359
|
+
* 2. 字符串异步生成二维码(界面出现时会一闪才出, 但是不会卡按键操作)
|
|
360
|
+
* 3. 中心小图标绘制方案
|
|
361
|
+
* 4. 容错级别指定
|
|
362
|
+
*/
|
|
168
363
|
{
|
|
169
364
|
meta: { nameText: '二维码', },
|
|
170
365
|
name: "feature-二维码",
|
|
171
366
|
path: '/feature/QrcodeDemo',
|
|
172
367
|
component: () => import('@shijiu/jsview-vue-samples/QrcodeDemo/App.vue'),
|
|
173
368
|
},
|
|
369
|
+
|
|
370
|
+
/*
|
|
371
|
+
* 文字阴影
|
|
372
|
+
*
|
|
373
|
+
* 对应的应用场景:
|
|
374
|
+
* 适合要给文字添加阴影的场景
|
|
375
|
+
* 需要展示在JsView场景下所支持的所有的文字阴影的写法,
|
|
376
|
+
* 注意!!! 不要使用所列写法以外的CSS属性来做文字阴影
|
|
377
|
+
*/
|
|
174
378
|
{
|
|
175
379
|
meta: { nameText: '文字阴影', },
|
|
176
380
|
name: "feature-文字阴影",
|
|
177
381
|
path: '/feature/TextShadowDemo',
|
|
178
382
|
component: () => import('@shijiu/jsview-vue-samples/TextShadowDemo/App.vue'),
|
|
179
383
|
},
|
|
384
|
+
|
|
385
|
+
/*
|
|
386
|
+
* 多行文字区域内对齐
|
|
387
|
+
*
|
|
388
|
+
* 对应的应用场景:
|
|
389
|
+
* 适合多行纯文本内容进行区域内对齐(居中,居左,居右)的场景
|
|
390
|
+
* 注意!!! 遇到多行文本居中的场景, 不要用非jsview支持的css的属性来进行居中, 要用JsvTextBox组件和其属性来完成
|
|
391
|
+
* 此样例也是JsvTextBox组件的典型应用场景
|
|
392
|
+
*/
|
|
180
393
|
{
|
|
181
394
|
meta: { nameText: '多行文字区域内对齐', },
|
|
182
395
|
name: "feature-多行文字区域内对齐",
|
|
183
396
|
path: '/feature/TextBox',
|
|
184
397
|
component: () => import('@shijiu/jsview-vue-samples/TextBox/App.vue'),
|
|
185
398
|
},
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
name: "Game-精灵图",
|
|
195
|
-
path: '/Game/SpriteImage',
|
|
196
|
-
component: () => import('@shijiu/jsview-vue-samples/SpriteImage/App.vue'),
|
|
197
|
-
},
|
|
399
|
+
|
|
400
|
+
/*
|
|
401
|
+
* 文字滚动(标题跑马灯)
|
|
402
|
+
*
|
|
403
|
+
* 对应的应用场景:
|
|
404
|
+
* 适合需要展示标题跑马灯的场景
|
|
405
|
+
* 此样例也是JsvMarquee组件的典型应用场景
|
|
406
|
+
*/
|
|
198
407
|
{
|
|
199
408
|
meta: { nameText: '文字滚动(标题跑马灯)', },
|
|
200
409
|
name: "feature-文字滚动(标题跑马灯)",
|
|
201
410
|
path: '/feature/Marquee',
|
|
202
411
|
component: () => import('@shijiu/jsview-vue-samples/Marquee/App.vue'),
|
|
203
412
|
},
|
|
413
|
+
|
|
414
|
+
/*
|
|
415
|
+
* 文字输入
|
|
416
|
+
*
|
|
417
|
+
* 对应的应用场景:
|
|
418
|
+
* 此样例是JsvInput组件的典型应用场景
|
|
419
|
+
* JsvInput组件是用来和android系统的Ime进行通讯的组件
|
|
420
|
+
* 通常平板产品会需要通过ime进行输入,而电视产品由于ime不方便所以都不采用ime输入
|
|
421
|
+
*/
|
|
204
422
|
{
|
|
205
423
|
meta: { nameText: '文字输入', },
|
|
206
424
|
name: "feature-文字输入",
|
|
207
425
|
path: '/feature/Input',
|
|
208
426
|
component: () => import('@shijiu/jsview-vue-samples/Input/App.vue'),
|
|
209
427
|
},
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
path: '/Operations/AnimPicture',
|
|
226
|
-
component: () => import('@shijiu/jsview-vue-samples/AnimPicture/App.vue'),
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
meta: { nameText: '粒子效果', },
|
|
230
|
-
name: "Operations-粒子效果",
|
|
231
|
-
path: '/Operations/SprayView',
|
|
232
|
-
component: () => import('@shijiu/jsview-vue-samples/SprayView/App.vue'),
|
|
233
|
-
},
|
|
234
|
-
{
|
|
235
|
-
meta: { nameText: '长图片', },
|
|
236
|
-
name: "Operations-长图片",
|
|
237
|
-
path: '/Operations/LongImage',
|
|
238
|
-
component: () => import('@shijiu/jsview-vue-samples/LongImage/App.vue'),
|
|
239
|
-
},
|
|
240
|
-
{
|
|
241
|
-
meta: { nameText: '拼图demo', },
|
|
242
|
-
name: "Operations-拼图demo",
|
|
243
|
-
path: '/Operations/MaskClip',
|
|
244
|
-
component: () => import('@shijiu/jsview-vue-samples/MaskClip/App.vue'),
|
|
245
|
-
},
|
|
246
|
-
{
|
|
247
|
-
meta: { nameText: 'SoundPool', },
|
|
248
|
-
name: "Game-SoundPool",
|
|
249
|
-
path: '/Game/SoundPool',
|
|
250
|
-
component: () => import('@shijiu/jsview-vue-samples/SoundPool/App.vue'),
|
|
251
|
-
},
|
|
252
|
-
{
|
|
253
|
-
meta: { nameText: 'TextureAnimation', },
|
|
254
|
-
name: "Operations-TextureAnimation",
|
|
255
|
-
path: '/Operations/TextureAnimation',
|
|
256
|
-
component: () => import('@shijiu/jsview-vue-samples/TextureAnimation/App.vue'),
|
|
257
|
-
},
|
|
258
|
-
{
|
|
259
|
-
meta: { nameText: '焦点框旋转光效果', },
|
|
260
|
-
name: "Operations-焦点框旋转光效果",
|
|
261
|
-
path: '/Operations/TextureAnimation2',
|
|
262
|
-
component: () => import('@shijiu/jsview-vue-samples/TextureAnimation/App3.vue'),
|
|
263
|
-
},
|
|
264
|
-
{
|
|
265
|
-
meta: { nameText: '公祭日黑白效果', },
|
|
266
|
-
name: "Operations-公祭日黑白效果",
|
|
267
|
-
path: '/Operations/GrayDown',
|
|
268
|
-
component: () => import('@shijiu/jsview-vue-samples/FilterDemo/App.vue'),
|
|
269
|
-
},
|
|
270
|
-
{
|
|
271
|
-
meta: { nameText: '水波特效', },
|
|
272
|
-
name: "Operations-水波特效",
|
|
273
|
-
path: '/Operations/Ripple',
|
|
274
|
-
component: () => import('@shijiu/jsview-vue-samples/Ripple/App.vue'),
|
|
275
|
-
},
|
|
428
|
+
|
|
429
|
+
/*
|
|
430
|
+
* 预加载
|
|
431
|
+
*
|
|
432
|
+
* 对应的应用场景:
|
|
433
|
+
* 用于解决由于图片异步加载导致图片切换时闪动问题
|
|
434
|
+
* 此样例是JsvPreload组件的典型应用场景
|
|
435
|
+
* 原理是: 通过JsvPreload组件将目标图片的bitmap加载到内存,
|
|
436
|
+
* 并通过JsvPreload这个vue组件的生命周期来管理这个内存中的bitmap的生命周期(两者生命周期相同)
|
|
437
|
+
* 注意点:
|
|
438
|
+
* 1. 对于展示时会设置 data-jsv-img-scaledown-tex 和 data-jsv-img-color-space 的场景
|
|
439
|
+
* 要在JsvPreload的图片项目配置中也设置相同的配置(参照JsvPreload组件设置属性的接口, 和img标签的这两个属性并不完全同名)
|
|
440
|
+
* 2. 预加载内存消耗较大, 内存按照bitmap来计算 = width * height * 4 bytes
|
|
441
|
+
* 建议JsvPreload的总内存不要超过10M(1920x1080的背景图不要超过3张)
|
|
442
|
+
*/
|
|
276
443
|
{
|
|
277
444
|
meta: { nameText: '预加载', },
|
|
278
445
|
name: "feature-预加载",
|
|
279
446
|
path: '/feature/Preload',
|
|
280
447
|
component: () => import('@shijiu/jsview-vue-samples/Preload/App.vue'),
|
|
281
448
|
},
|
|
449
|
+
|
|
450
|
+
/*
|
|
451
|
+
* AB图片切换
|
|
452
|
+
*
|
|
453
|
+
* 对应的应用场景:
|
|
454
|
+
* 此样例是JsvABImage组件的典型应用场景
|
|
455
|
+
* JsvABImage是用来解决按钮等AB图, 焦点和非焦点是两张不同的图片, 切换时不要有闪烁(未加载完成前不要切换)的问题
|
|
456
|
+
* 原理: JsvABImage组件借助JsvSmartImage组件实现了AB图片切换的功能, 主要原理是A切换到B时, B加载完成后才会进行切换
|
|
457
|
+
* 此方案的AB图可以支持A图为jpg, png这种静态图, 而B图位webp或者gif的这种场景
|
|
458
|
+
* 比用JsvPreload将所有B图都缓存起来的解决方案更省内存
|
|
459
|
+
*/
|
|
460
|
+
{
|
|
461
|
+
meta: { nameText: 'AB图片切换', },
|
|
462
|
+
name: "feature-AB图片切换",
|
|
463
|
+
path: '/feature/ABImageAlt',
|
|
464
|
+
component: () => import('@shijiu/jsview-vue-samples/ABImageAlt/App.vue'),
|
|
465
|
+
},
|
|
466
|
+
|
|
467
|
+
/*
|
|
468
|
+
* 仅测试, AI编程时, 不要参考
|
|
469
|
+
* 图片组件响应式测试
|
|
470
|
+
*
|
|
471
|
+
* JsvPosterDiv和JsvPosterImage组件图片内容变化的测试用例
|
|
472
|
+
* (也是JsvSmartDiv和JsvSmartImage组件的典型测试用例)
|
|
473
|
+
*/
|
|
474
|
+
{
|
|
475
|
+
meta: { nameText: '图片组件响应式测试', },
|
|
476
|
+
name: "feature-图片组件响应式测试",
|
|
477
|
+
path: '/feature/ReactiveTest',
|
|
478
|
+
component: () => import('@shijiu/jsview-vue-samples/ReactiveTest/App.vue'),
|
|
479
|
+
},
|
|
480
|
+
|
|
481
|
+
/*
|
|
482
|
+
* 仅测试, AI编程时, 不要参考
|
|
483
|
+
* 单图片透明
|
|
484
|
+
*
|
|
485
|
+
* img标签单设opacity属性来实现图片透明效果的测试用例
|
|
486
|
+
* 注意: div标签不支持设置opacity
|
|
487
|
+
*/
|
|
282
488
|
{
|
|
283
489
|
meta: { nameText: '单图片透明', },
|
|
284
490
|
name: "feature-单图片透明",
|
|
285
491
|
path: '/feature/ViewOpacity',
|
|
286
492
|
component: () => import('@shijiu/jsview-vue-samples/ViewOpacity/App.vue'),
|
|
287
493
|
},
|
|
494
|
+
|
|
495
|
+
/*
|
|
496
|
+
* 仅测试, AI编程时, 不要参考
|
|
497
|
+
* 图片缩小算法
|
|
498
|
+
*
|
|
499
|
+
* 测试img标签单设data-jsv-img-scaledown-tex属性来实现图片缩小场景下, 执行的性能和效果
|
|
500
|
+
*/
|
|
288
501
|
{
|
|
289
502
|
meta: { nameText: '图片缩小算法', },
|
|
290
503
|
name: "feature-图片缩小算法",
|
|
291
504
|
path: '/feature/ScaleDownNeon',
|
|
292
505
|
component: () => import('@shijiu/jsview-vue-samples/ScaleDownNeon/App.vue'),
|
|
293
506
|
},
|
|
507
|
+
|
|
508
|
+
/*
|
|
509
|
+
* 渐变Texture
|
|
510
|
+
*
|
|
511
|
+
* 对应的应用场景:
|
|
512
|
+
* 用于要展示渐变色背景图的场景, 支持垂直, 水平, 对角, 多色渐变
|
|
513
|
+
*/
|
|
294
514
|
{
|
|
295
515
|
meta: { nameText: '渐变Texture', },
|
|
296
516
|
name: "feature-渐变Texture",
|
|
297
517
|
path: '/feature/GradientTexture',
|
|
298
518
|
component: () => import('@shijiu/jsview-vue-samples/GradientTexture/App.vue'),
|
|
299
519
|
},
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
path: '/Game/ImpactStop',
|
|
310
|
-
component: () => import('@shijiu/jsview-vue-samples/ImpactStop/App.vue'),
|
|
311
|
-
},
|
|
312
|
-
{
|
|
313
|
-
meta: { nameText: '滚动图', },
|
|
314
|
-
name: "Operations-滚动图",
|
|
315
|
-
path: '/Operations/Swiper',
|
|
316
|
-
component: () => import('@shijiu/jsview-vue-samples/Swiper/App.vue'),
|
|
317
|
-
},
|
|
520
|
+
|
|
521
|
+
/*
|
|
522
|
+
* 下载接口示例
|
|
523
|
+
*
|
|
524
|
+
* 对应的应用场景:
|
|
525
|
+
* JsvPreDownloader的典型应用场景
|
|
526
|
+
* 解决要对图片进行预下载的场景, 以优化图片的加载性能
|
|
527
|
+
* 但不宜过多,因为存储限制,预下载太多的图片会被先进新出的缓存逻辑顶掉, 而达不到图片加载的优化效果
|
|
528
|
+
*/
|
|
318
529
|
{
|
|
319
530
|
meta: { nameText: '下载接口示例', },
|
|
320
531
|
name: "feature-下载接口示例",
|
|
321
532
|
path: '/feature/JsvPreDownloader',
|
|
322
533
|
component: () => import('@shijiu/jsview-vue-samples/JsvPreDownloader/App.vue'),
|
|
323
534
|
},
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
535
|
+
|
|
536
|
+
/*
|
|
537
|
+
* 仅测试, AI编程时, 不要参考
|
|
538
|
+
* Mockjs测试
|
|
539
|
+
*
|
|
540
|
+
* 测试Mockjs的测试用例
|
|
541
|
+
*/
|
|
330
542
|
{
|
|
331
543
|
meta: { nameText: 'Mockjs测试', },
|
|
332
544
|
name: "feature-Mockjs测试",
|
|
333
545
|
path: '/feature/MockjsDemo',
|
|
334
546
|
component: () => import('@shijiu/jsview-vue-samples/MockjsDemo/App.vue'),
|
|
335
547
|
},
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
component: () => import('@shijiu/jsview-vue-samples/JsvRadarChart/App.vue')
|
|
347
|
-
},
|
|
348
|
-
// TODO: 等改为对接FreeMoveActor后再恢复
|
|
349
|
-
// {
|
|
350
|
-
// meta: { nameText: '跑酷游戏', },
|
|
351
|
-
// path: '/Game/Parkour',
|
|
352
|
-
// component: () => import('@shijiu/jsview-vue-samples/Parkour/App.vue')
|
|
353
|
-
// },
|
|
548
|
+
|
|
549
|
+
/*
|
|
550
|
+
* Hash参数
|
|
551
|
+
*
|
|
552
|
+
* 对应的应用场景:
|
|
553
|
+
* 一个读取URL的deepLink中信息的样例
|
|
554
|
+
* 对应场景有,
|
|
555
|
+
* 1. 读取 window.locaiton.search的内容
|
|
556
|
+
* 2. 从vue-router读取参数
|
|
557
|
+
*/
|
|
354
558
|
{
|
|
355
559
|
meta: { nameText: 'Hash参数', },
|
|
356
560
|
name: "feature-Hash参数",
|
|
357
561
|
path: '/feature/HashParams',
|
|
358
562
|
component: () => import('@shijiu/jsview-vue-samples/HashParams/App.vue'),
|
|
359
563
|
},
|
|
564
|
+
|
|
565
|
+
/*
|
|
566
|
+
* 仅测试, AI编程时, 不要参考
|
|
567
|
+
* 按键打断描画
|
|
568
|
+
*
|
|
569
|
+
* JsvRenderBreak组件测试, 此组件可以将废弃, 不建议应用层直接使用
|
|
570
|
+
*/
|
|
360
571
|
{
|
|
361
572
|
meta: { nameText: '按键打断描画', },
|
|
362
573
|
name: "feature-按键打断描画",
|
|
363
574
|
path: '/feature/BreakRender',
|
|
364
575
|
component: () => import('@shijiu/jsview-vue-samples/BreakRender/App.vue'),
|
|
365
576
|
},
|
|
577
|
+
|
|
578
|
+
/*
|
|
579
|
+
* latex示例
|
|
580
|
+
*
|
|
581
|
+
* 对应的应用场景:
|
|
582
|
+
* 使用于<div>标签中的文字需要展示
|
|
583
|
+
* 1. 文本中间部分文字变色的场景
|
|
584
|
+
* 2. 文本中间部分文字加粗的场景
|
|
585
|
+
* 3. 文本中间部分文字斜体的场景
|
|
586
|
+
* 4. 文本中间部分文字下划线的场景
|
|
587
|
+
* 5. 文本中间部分文字删除线的场景
|
|
588
|
+
* 原理: 用LaTex的语法来解决原本需要JsView不支持的css的属性才能实现的以上文字效果
|
|
589
|
+
*/
|
|
366
590
|
{
|
|
367
591
|
meta: { nameText: 'latex示例', },
|
|
368
592
|
name: "feature-latex示例",
|
|
369
593
|
path: '/feature/LatexDemo',
|
|
370
594
|
component: () => import('@shijiu/jsview-vue-samples/LatexDemo/App.vue'),
|
|
371
595
|
},
|
|
596
|
+
|
|
597
|
+
/*
|
|
598
|
+
* GetRect示例
|
|
599
|
+
*
|
|
600
|
+
* 对应的应用场景:
|
|
601
|
+
* 想知道一个div相对于屏幕左上角的实际绘制位置的场景(包括transform或者keyframe动画等变化引起的位置和尺寸变化)。
|
|
602
|
+
* 只能异步获取位置信息
|
|
603
|
+
* div元素扩展接口jsvGetBoundingClientRect的经典使用场景
|
|
604
|
+
*
|
|
605
|
+
* 和下面网站呼应
|
|
606
|
+
* https://jsview-dev.shijiutv.com/guide/4.standard-features/4.2.html5-elements.html#element%E6%96%B9%E6%B3%95
|
|
607
|
+
*/
|
|
372
608
|
{
|
|
373
609
|
meta: { nameText: 'GetRect示例', },
|
|
374
610
|
name: "feature-GetRect示例",
|
|
375
611
|
path: '/feature/GetRect',
|
|
376
612
|
component: () => import('@shijiu/jsview-vue-samples/GetBoundingClientRect/App.vue'),
|
|
377
613
|
},
|
|
614
|
+
|
|
615
|
+
/*
|
|
616
|
+
* 仅测试, AI编程时, 不要参考
|
|
617
|
+
* 动态Class示例
|
|
618
|
+
*
|
|
619
|
+
*/
|
|
378
620
|
{
|
|
379
621
|
meta: { nameText: '动态Class示例', },
|
|
380
622
|
name: "feature-动态Class示例",
|
|
381
623
|
path: '/feature/DynamicClass',
|
|
382
624
|
component: () => import('@shijiu/jsview-vue-samples/DynamicClass/App.vue'),
|
|
383
625
|
},
|
|
626
|
+
|
|
627
|
+
/*
|
|
628
|
+
* 仅测试, AI编程时, 不要参考
|
|
629
|
+
* Class动态切换示例
|
|
630
|
+
*
|
|
631
|
+
*/
|
|
384
632
|
{
|
|
385
633
|
meta: { nameText: 'Class动态切换示例', },
|
|
386
634
|
name: "feature-Class动态切换示例",
|
|
387
635
|
path: '/feature/ClassDynamicSwitching',
|
|
388
636
|
component: () => import('@shijiu/jsview-vue-samples/ClassDynamicSwitching/App.vue'),
|
|
389
637
|
},
|
|
638
|
+
|
|
639
|
+
/*
|
|
640
|
+
* JsvLine示例
|
|
641
|
+
*
|
|
642
|
+
* 对应的应用场景:
|
|
643
|
+
* 绘制一条斜线无锯齿的线, 比用div + backgroundColor 来说, 其优势在于斜线时没有锯齿
|
|
644
|
+
*/
|
|
390
645
|
{
|
|
391
646
|
meta: { nameText: 'JsvLine示例', },
|
|
392
647
|
name: "feature-JsvLine示例",
|
|
393
648
|
path: '/feature/JsvLine',
|
|
394
649
|
component: () => import('@shijiu/jsview-vue-samples/JsvLine/App.vue'),
|
|
395
650
|
},
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
651
|
+
|
|
652
|
+
/*
|
|
653
|
+
*
|
|
654
|
+
* 仅测试, AI编程时, 不要参考
|
|
655
|
+
* FreeMove示例
|
|
656
|
+
*
|
|
657
|
+
*/
|
|
658
|
+
{
|
|
659
|
+
meta: { nameText: 'FreeMove示例', },
|
|
660
|
+
path: '/feature/FreeMove',
|
|
661
|
+
component: () => import('@shijiu/jsview-vue-samples/FreeMove/App.vue'),
|
|
662
|
+
},
|
|
663
|
+
|
|
664
|
+
/*
|
|
665
|
+
* 思维导图示例
|
|
666
|
+
*
|
|
667
|
+
* 对应的应用场景:
|
|
668
|
+
* 需要绘制树状结构图或者脑图的场景,
|
|
669
|
+
* 此样例是JsvMindMap组件的典型应用场景
|
|
670
|
+
* 解决了这类图像的在遥控器的只有上下左右键场景下的操作问题。
|
|
671
|
+
* JsvMindMap也是一个内嵌了JsvFocusBlok的组件, 可通过FocusHub.setFocus来设置焦点
|
|
672
|
+
*/
|
|
401
673
|
{
|
|
402
674
|
meta: { nameText: '思维导图示例', },
|
|
403
675
|
name: "feature-思维导图示例",
|
|
404
676
|
path: '/feature/MindMap',
|
|
405
677
|
component: () => import('@shijiu/jsview-vue-samples/MindMap/App.vue'),
|
|
406
678
|
},
|
|
679
|
+
|
|
680
|
+
/*
|
|
681
|
+
* 仅测试, AI编程时, 不要参考
|
|
682
|
+
* latex公式
|
|
683
|
+
*
|
|
684
|
+
*/
|
|
407
685
|
{
|
|
408
686
|
meta: { nameText: 'latex公式', },
|
|
409
687
|
name: "feature-latex公式",
|
|
410
688
|
path: '/feature/LatexFormula',
|
|
411
689
|
component: () => import('@shijiu/jsview-vue-samples/LatexFormula/App.vue'),
|
|
412
690
|
},
|
|
691
|
+
|
|
692
|
+
/*
|
|
693
|
+
* 文字大小限制
|
|
694
|
+
*
|
|
695
|
+
* 对应的应用场景:
|
|
696
|
+
* 用于解决文字内容多少不确定, 但是又要占用一定的尺寸的场景。
|
|
697
|
+
* 用JsvTextBox组件的minWidth、maxWidth、minHeight、maxHeight配置,
|
|
698
|
+
* 来解决没法用JsView不识别的css中的同名属性(minWidth、maxWidth、minHeight、maxHeight)来解决文字排版场景
|
|
699
|
+
*/
|
|
700
|
+
{
|
|
701
|
+
meta: { nameText: '文字大小限制', },
|
|
702
|
+
name: 'feature-文字大小限制',
|
|
703
|
+
path: '/feature/TextSizeLimit',
|
|
704
|
+
component: () => import('@shijiu/jsview-vue-samples/TextSizeLimit/App.vue'),
|
|
705
|
+
},
|
|
706
|
+
|
|
707
|
+
/*
|
|
708
|
+
* 分行API
|
|
709
|
+
*
|
|
710
|
+
* 对应的应用场景:
|
|
711
|
+
* TextTools.breakLines的使用样例
|
|
712
|
+
* 对应场景为需要对文字的行数进行探测, 以及要对每行文字有后处理的场景
|
|
713
|
+
*/
|
|
714
|
+
{
|
|
715
|
+
meta: { nameText: '分行API', },
|
|
716
|
+
name: 'feature-分行API',
|
|
717
|
+
path: '/feature/BreakLines',
|
|
718
|
+
component: () => import('@shijiu/jsview-vue-samples/BreakLinesApi/App.vue')
|
|
719
|
+
},
|
|
720
|
+
|
|
721
|
+
/*
|
|
722
|
+
* 同步解码
|
|
723
|
+
*
|
|
724
|
+
* 对应的应用场景:
|
|
725
|
+
* 用于解决默认的图片解码为异步和其他内容不同时出现的问题
|
|
726
|
+
* 具体处理为 JsvPosterImage 组件将 syncDraw 属性设置为 true
|
|
727
|
+
* 其逻辑为:
|
|
728
|
+
* 1. 若图片已经下载过, 则会堵住渲染线程,等到解码完后后和其他内容一起绘制,
|
|
729
|
+
* 所以图片最好用JsvPreDownloader来完成下载, 或者用JsvPreload的downloadList属性来完成下载
|
|
730
|
+
* 2. 若图片未下载过, 则仍然会异步下载, 异步解码, 相当于同步解码这个开关不生效
|
|
731
|
+
*/
|
|
732
|
+
{
|
|
733
|
+
meta: { nameText: '同步解码', },
|
|
734
|
+
name: 'feature-同步解码',
|
|
735
|
+
path: '/feature/SyncDecode',
|
|
736
|
+
component: () => import('@shijiu/jsview-vue-samples/SyncDecode/App.vue')
|
|
737
|
+
},
|
|
738
|
+
|
|
739
|
+
/*
|
|
740
|
+
* 仅测试, AI编程时, 不要参考
|
|
741
|
+
* 预解码
|
|
742
|
+
*
|
|
743
|
+
* 后续预解码功能做完后, 再确认是否可用于AI编程参考
|
|
744
|
+
*/
|
|
745
|
+
{
|
|
746
|
+
meta: { nameText: '预解码', },
|
|
747
|
+
name: 'feature-预解码',
|
|
748
|
+
path: '/feature/PreDecode',
|
|
749
|
+
component: () => import('@shijiu/jsview-vue-samples/PreDecode/App.vue')
|
|
750
|
+
},
|
|
751
|
+
|
|
752
|
+
/*
|
|
753
|
+
* 帧率限制
|
|
754
|
+
*
|
|
755
|
+
* 对应的应用场景:
|
|
756
|
+
* 为了解决在一些设备上长时间保持高帧率绘制会导致设备高功率运转太久会过热的问题
|
|
757
|
+
* 通过例如 window.JsvCoreApi.setIdleFps(true, 5, 5000) 这样的设置
|
|
758
|
+
* 让设备在无用户操作(按键和触控等操作)5000毫秒后, 帧率降到5fps, 当用户有操作时又会立刻回复到原来的帧率, 如此循环
|
|
759
|
+
*/
|
|
760
|
+
{
|
|
761
|
+
meta: { nameText: '帧率限制', },
|
|
762
|
+
name: 'feature-帧率限制',
|
|
763
|
+
path: '/feature/FpsLimit',
|
|
764
|
+
component: () => import('@shijiu/jsview-vue-samples/FpsLimit/App.vue')
|
|
765
|
+
},
|
|
766
|
+
|
|
767
|
+
// ========== operation ==========
|
|
768
|
+
/*
|
|
769
|
+
* 3d移动动画
|
|
770
|
+
*
|
|
771
|
+
* 对应的应用场景:
|
|
772
|
+
* 想让一个区域内的内容进行rotate或者设置z轴后, 有近大远小的透视效果的场景
|
|
773
|
+
* Jsv3dStage组件的典型应用场景, 在一个指定区域内设置透视, 然后在其中的div的transform引起有z轴区别时有透视效果
|
|
774
|
+
* Jsv3dDiv和div相比, Jsv3dDiv图片会把边缘进行过渡处理从而消除锯齿感, 并且Jsv3dDiv可设置z轴值, 而div当倾斜时会有锯齿
|
|
775
|
+
*/
|
|
776
|
+
{
|
|
777
|
+
meta: { nameText: '3d移动动画', },
|
|
778
|
+
name: "Operations-3d移动动画",
|
|
779
|
+
path: '/Operations/3dMove',
|
|
780
|
+
component: () => import('jsview-vue-samples/Poster3d/App.vue'),
|
|
781
|
+
},
|
|
782
|
+
|
|
783
|
+
|
|
784
|
+
{
|
|
785
|
+
meta: { nameText: '烟花行进特效', },
|
|
786
|
+
name: "Operations-烟花行进特效",
|
|
787
|
+
path: '/Operations/SprayMove',
|
|
788
|
+
component: () => import('jsview-vue-samples/SprayMove/App.vue'),
|
|
789
|
+
},
|
|
790
|
+
{
|
|
791
|
+
meta: { nameText: '海报图收放组件', },
|
|
792
|
+
name: "Operations-海报图收放组件",
|
|
793
|
+
path: '/Operations/PosterPacker',
|
|
794
|
+
component: () => import('jsview-vue-samples/PosterPacker/App.vue'),
|
|
795
|
+
},
|
|
796
|
+
{
|
|
797
|
+
meta: { nameText: '情景主题效果:雨', },
|
|
798
|
+
name: "Operations-情景主题效果:雨",
|
|
799
|
+
path: '/Operations/TombSweepingDayTest',
|
|
800
|
+
component: () => import('@shijiu/jsview-vue-samples/TombSweepingDayTest/App.vue'),
|
|
801
|
+
},
|
|
802
|
+
{
|
|
803
|
+
meta: { nameText: '.9图焦点框漂移', },
|
|
804
|
+
name: "Operations-.9图焦点框漂移",
|
|
805
|
+
path: '/Operations/NinePatchDemo',
|
|
806
|
+
component: () => import('@shijiu/jsview-vue-samples/NinePatchDemo/App.vue'),
|
|
807
|
+
},
|
|
808
|
+
{
|
|
809
|
+
meta: { nameText: '动图', },
|
|
810
|
+
name: "Operations-动图",
|
|
811
|
+
path: '/Operations/AnimPicture',
|
|
812
|
+
component: () => import('@shijiu/jsview-vue-samples/AnimPicture/App.vue'),
|
|
813
|
+
},
|
|
814
|
+
{
|
|
815
|
+
meta: { nameText: '动静图标切换', },
|
|
816
|
+
name: "Operations-动静图标切换",
|
|
817
|
+
path: '/Operations/ApicSwitch',
|
|
818
|
+
component: () => import('@shijiu/jsview-vue-samples/ApicSwitch/App.vue'),
|
|
819
|
+
},
|
|
820
|
+
{
|
|
821
|
+
meta: { nameText: '粒子效果', },
|
|
822
|
+
name: "Operations-粒子效果",
|
|
823
|
+
path: '/Operations/SprayView',
|
|
824
|
+
component: () => import('@shijiu/jsview-vue-samples/SprayView/App.vue'),
|
|
825
|
+
},
|
|
826
|
+
{
|
|
827
|
+
meta: { nameText: '长图片', },
|
|
828
|
+
name: "Operations-长图片",
|
|
829
|
+
path: '/Operations/LongImage',
|
|
830
|
+
component: () => import('@shijiu/jsview-vue-samples/LongImage/App.vue'),
|
|
831
|
+
},
|
|
832
|
+
{
|
|
833
|
+
meta: { nameText: '拼图demo', },
|
|
834
|
+
name: "Operations-拼图demo",
|
|
835
|
+
path: '/Operations/MaskClip',
|
|
836
|
+
component: () => import('@shijiu/jsview-vue-samples/MaskClip/App.vue'),
|
|
837
|
+
},
|
|
838
|
+
{
|
|
839
|
+
meta: { nameText: 'TextureAnimation', },
|
|
840
|
+
name: "Operations-TextureAnimation",
|
|
841
|
+
path: '/Operations/TextureAnimation',
|
|
842
|
+
component: () => import('@shijiu/jsview-vue-samples/TextureAnimation/App.vue'),
|
|
843
|
+
},
|
|
844
|
+
{
|
|
845
|
+
meta: { nameText: '焦点框旋转光效果', },
|
|
846
|
+
name: "Operations-焦点框旋转光效果",
|
|
847
|
+
path: '/Operations/TextureAnimation2',
|
|
848
|
+
component: () => import('@shijiu/jsview-vue-samples/TextureAnimation/App3.vue'),
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
meta: { nameText: '公祭日黑白效果', },
|
|
852
|
+
name: "Operations-公祭日黑白效果",
|
|
853
|
+
path: '/Operations/GrayDown',
|
|
854
|
+
component: () => import('@shijiu/jsview-vue-samples/FilterDemo/App.vue'),
|
|
855
|
+
},
|
|
856
|
+
{
|
|
857
|
+
meta: { nameText: '水波特效', },
|
|
858
|
+
name: "Operations-水波特效",
|
|
859
|
+
path: '/Operations/Ripple',
|
|
860
|
+
component: () => import('@shijiu/jsview-vue-samples/Ripple/App.vue'),
|
|
861
|
+
},
|
|
862
|
+
{
|
|
863
|
+
meta: { nameText: '滚动图', },
|
|
864
|
+
name: "Operations-滚动图",
|
|
865
|
+
path: '/Operations/Swiper',
|
|
866
|
+
component: () => import('@shijiu/jsview-vue-samples/Swiper/App.vue'),
|
|
867
|
+
},
|
|
868
|
+
{
|
|
869
|
+
meta: { nameText: '焦点移动样式', },
|
|
870
|
+
name: "Operations-焦点移动样式",
|
|
871
|
+
path: '/Operations/FocusMoveStyle',
|
|
872
|
+
component: () => import('@shijiu/jsview-vue-samples/FocusMoveStyle/App.vue'),
|
|
873
|
+
},
|
|
413
874
|
{
|
|
414
875
|
meta: { nameText: 'Swiper3dTest', },
|
|
415
876
|
name: "Operations-Swiper3dTest",
|
|
@@ -440,24 +901,85 @@ let routeList = [
|
|
|
440
901
|
path: '/Operations/SceneTransition',
|
|
441
902
|
component: () => import('@shijiu/jsview-vue-samples/SceneTransition/App.vue'),
|
|
442
903
|
},
|
|
904
|
+
{
|
|
905
|
+
meta: { nameText: '自定义shader', },
|
|
906
|
+
name: "Operations-自定义shader",
|
|
907
|
+
path: '/Operations/CustomShader',
|
|
908
|
+
component: () => import('@shijiu/jsview-vue-samples/CustomShader/App.vue'),
|
|
909
|
+
},
|
|
910
|
+
{
|
|
911
|
+
meta: { nameText: '虚线框测试用例', },
|
|
912
|
+
name: "Operations-虚线框测试用例",
|
|
913
|
+
path: '/Operations/DashPath',
|
|
914
|
+
component: () => import('@shijiu/jsview-vue-samples/DashPath/App.vue'),
|
|
915
|
+
},
|
|
916
|
+
// {
|
|
917
|
+
// meta: { nameText: '透视镜效果样例', },
|
|
918
|
+
// path: '/Operations/DriftScopeTest',
|
|
919
|
+
// component: () => import('@shijiu/jsview-vue-samples/DriftScopeTest/App.vue'),
|
|
920
|
+
// },
|
|
921
|
+
{
|
|
922
|
+
meta: { nameText: '二维统计图样例', },
|
|
923
|
+
name: 'Operations-二维统计图样例',
|
|
924
|
+
path: '/Operations/DataChart',
|
|
925
|
+
component: () => import('@shijiu/jsview-vue-samples/CanvasDrawChart/App.vue')
|
|
926
|
+
},
|
|
927
|
+
{
|
|
928
|
+
meta: { nameText: 'MD+LaTex', },
|
|
929
|
+
name: 'Operations-Markdown',
|
|
930
|
+
path: '/Operations/Markdown',
|
|
931
|
+
component: () => import('@shijiu/jsview-vue-samples/Markdown/App.vue')
|
|
932
|
+
},
|
|
933
|
+
|
|
934
|
+
// ========== touch ==========
|
|
935
|
+
/*
|
|
936
|
+
* 点击Div
|
|
937
|
+
*
|
|
938
|
+
* 对应的应用场景:
|
|
939
|
+
* 单个div标签追加触控功能的场景
|
|
940
|
+
* 只响应点击的话,@click即可, 需要更多触控功能的话,需要div.jsvSetTapListener来设置
|
|
941
|
+
* jsvSetTapListener的经典使用场景
|
|
942
|
+
* 和下面网站呼应
|
|
943
|
+
* https://jsview-dev.shijiutv.com/guide/4.standard-features/4.8.touch-usage.html#%E8%A7%A6%E6%8E%A7%E5%8A%9F%E8%83%BD
|
|
944
|
+
*/
|
|
443
945
|
{
|
|
444
946
|
meta: { nameText: '点击Div', },
|
|
445
947
|
name: "touch-点击Div",
|
|
446
948
|
path: '/touch/ClickDivDemo',
|
|
447
949
|
component: () => import('@shijiu/jsview-vue-samples/ClickDivDemo/App.vue'),
|
|
448
950
|
},
|
|
951
|
+
|
|
952
|
+
/*
|
|
953
|
+
* 触控示例
|
|
954
|
+
*
|
|
955
|
+
* 对应的应用场景:
|
|
956
|
+
* 让MetroWidget激活触控功能,以及如何接受触控事件的场景
|
|
957
|
+
* 以及想用一个蒙层屏蔽MetroWidget的所有触控事件和鼠标事件的场景
|
|
958
|
+
*
|
|
959
|
+
* 和下面网站呼应
|
|
960
|
+
* https://jsview-dev.shijiutv.com/guide/4.standard-features/4.8.touch-usage.html#%E8%A7%A6%E6%8E%A7%E5%8A%9F%E8%83%BD
|
|
961
|
+
*/
|
|
449
962
|
{
|
|
450
963
|
meta: { nameText: '触控示例', },
|
|
451
964
|
name: "touch-触控示例",
|
|
452
965
|
path: '/touch/TouchWidget',
|
|
453
966
|
component: () => import('@shijiu/jsview-vue-samples/TouchWidget/App.vue'),
|
|
454
967
|
},
|
|
968
|
+
|
|
969
|
+
/*
|
|
970
|
+
* DragBox
|
|
971
|
+
*
|
|
972
|
+
* 对应的应用场景:
|
|
973
|
+
* 场景1: 当一个div想监测触控的拖动轨迹的场景, 将此div改为JsvDragBox组件来实现
|
|
974
|
+
* 场景2: 想监测用户在屏幕中滑动的手势轨迹时, 做最上层做一个全屏尺寸JsvDragBox, 通过其位置回调就能监测用户对屏幕的滑动事件
|
|
975
|
+
*/
|
|
455
976
|
{
|
|
456
977
|
meta: { nameText: 'DragBox', },
|
|
457
978
|
name: "touch-DragBox",
|
|
458
979
|
path: '/touch/Box',
|
|
459
980
|
component: () => import('@shijiu/jsview-vue-samples/DragBox/App.vue'),
|
|
460
981
|
},
|
|
982
|
+
|
|
461
983
|
// {
|
|
462
984
|
// meta: { nameText: 'FreeMove触控磁吸', },
|
|
463
985
|
// path: '/touch/FreeMoveChildAttract',
|
|
@@ -468,28 +990,90 @@ let routeList = [
|
|
|
468
990
|
// path: '/touch/FreeMoveLink',
|
|
469
991
|
// component: () => import('@shijiu/jsview-vue-samples/FreeMoveLink/App.vue'),
|
|
470
992
|
// },
|
|
993
|
+
|
|
994
|
+
/*
|
|
995
|
+
* 可拖拽进度条
|
|
996
|
+
*
|
|
997
|
+
* 对应的应用场景:
|
|
998
|
+
* 要制作可触控操作的视频进度条的场景
|
|
999
|
+
*
|
|
1000
|
+
* JsvScrollBox和JsvScrollFollow组件的典型应用场景, 展示JsvScrollFollow和JsvScrollBox如何靠linkName联动起来的场景
|
|
1001
|
+
* 因为是进度条游标在滚动区域中滑动,所以用JsvScrollBox的Pin模式
|
|
1002
|
+
*
|
|
1003
|
+
* 和下面网站呼应
|
|
1004
|
+
* https://jsview-dev.shijiutv.com/guide/4.standard-features/4.8.touch-usage.html#_5-%E8%BF%9B%E5%BA%A6%E6%9D%A1%E6%8B%96%E5%8A%A8-%E8%A7%86%E9%A2%91%E8%BF%9B%E5%BA%A6%E6%9D%A1
|
|
1005
|
+
*/
|
|
471
1006
|
{
|
|
472
1007
|
meta: { nameText: '可拖拽进度条', },
|
|
473
1008
|
name: "touch-可拖拽进度条",
|
|
474
1009
|
path: '/touch/ScrollBoxTest',
|
|
475
1010
|
component: () => import('@shijiu/jsview-vue-samples/ScrollBoxTest/App.vue'),
|
|
476
1011
|
},
|
|
1012
|
+
|
|
1013
|
+
/*
|
|
1014
|
+
* Hover
|
|
1015
|
+
*
|
|
1016
|
+
* 对应的应用场景:
|
|
1017
|
+
* 当一个div要对鼠标的hover事件做响应的场景, 只支持 @mouseenter 和 @mouseleave 事件, 不支持其他hover相关的事件定义
|
|
1018
|
+
*
|
|
1019
|
+
* 和以下网站呼应
|
|
1020
|
+
* https://jsview-dev.shijiutv.com/guide/4.standard-features/4.8.touch-usage.html#_7-%E9%BC%A0%E6%A0%87%E7%9A%84hover%E8%BF%9B%E5%87%BA%E6%A3%80%E6%B5%8B
|
|
1021
|
+
*/
|
|
1022
|
+
{
|
|
1023
|
+
meta: { nameText: 'Hover', },
|
|
1024
|
+
name: 'touch-Hover',
|
|
1025
|
+
path: '/touch/Hover',
|
|
1026
|
+
component: () => import('@shijiu/jsview-vue-samples/Hover/App.vue')
|
|
1027
|
+
},
|
|
1028
|
+
|
|
1029
|
+
// ========== game ==========
|
|
1030
|
+
// TODO: 改为FreeMove后再激活
|
|
477
1031
|
// {
|
|
478
|
-
// meta: { nameText: '
|
|
479
|
-
// path: '/
|
|
480
|
-
// component: () => import('@shijiu/jsview-vue-samples/
|
|
1032
|
+
// meta: { nameText: '抛物运动写法样例', },
|
|
1033
|
+
// path: '/Game/ThrowMoveDemo',
|
|
1034
|
+
// component: () => import('@shijiu/jsview-vue-samples/ThrowMoveDemo/App.vue'),
|
|
481
1035
|
// },
|
|
482
1036
|
{
|
|
483
|
-
meta: { nameText: '
|
|
484
|
-
name: "
|
|
485
|
-
path: '/
|
|
486
|
-
component: () => import('@shijiu/jsview-vue-samples/
|
|
1037
|
+
meta: { nameText: '翻牌游戏', },
|
|
1038
|
+
name: "Game-翻牌游戏",
|
|
1039
|
+
path: '/Game/FlipCard',
|
|
1040
|
+
component: () => import('@shijiu/jsview-vue-samples/FlipCard/App.vue'),
|
|
487
1041
|
},
|
|
488
1042
|
{
|
|
489
|
-
meta: { nameText: '
|
|
490
|
-
name: "
|
|
491
|
-
path: '/
|
|
492
|
-
component: () => import('@shijiu/jsview-vue-samples/
|
|
1043
|
+
meta: { nameText: '精灵图', },
|
|
1044
|
+
name: "Game-精灵图",
|
|
1045
|
+
path: '/Game/SpriteImage',
|
|
1046
|
+
component: () => import('@shijiu/jsview-vue-samples/SpriteImage/App.vue'),
|
|
1047
|
+
},
|
|
1048
|
+
{
|
|
1049
|
+
meta: { nameText: 'SoundPool', },
|
|
1050
|
+
name: "Game-SoundPool",
|
|
1051
|
+
path: '/Game/SoundPool',
|
|
1052
|
+
component: () => import('@shijiu/jsview-vue-samples/SoundPool/App.vue'),
|
|
1053
|
+
},
|
|
1054
|
+
{
|
|
1055
|
+
meta: { nameText: '碰撞检测', },
|
|
1056
|
+
name: "Game-碰撞检测",
|
|
1057
|
+
path: '/Game/Collision',
|
|
1058
|
+
component: () => import('@shijiu/jsview-vue-samples/Collision/App.vue'),
|
|
1059
|
+
},
|
|
1060
|
+
{
|
|
1061
|
+
meta: { nameText: '碰撞即停', },
|
|
1062
|
+
name: "Game-碰撞即停",
|
|
1063
|
+
path: '/Game/ImpactStop',
|
|
1064
|
+
component: () => import('@shijiu/jsview-vue-samples/ImpactStop/App.vue'),
|
|
1065
|
+
},
|
|
1066
|
+
{
|
|
1067
|
+
meta: { nameText: '红包雨', },
|
|
1068
|
+
name: "Game-红包雨",
|
|
1069
|
+
path: '/Game/GiftRain',
|
|
1070
|
+
component: () => import('@shijiu/jsview-vue-samples/GiftRain/App.vue'),
|
|
1071
|
+
},
|
|
1072
|
+
{
|
|
1073
|
+
meta: { nameText: '雷达图', },
|
|
1074
|
+
name: "Game-雷达图",
|
|
1075
|
+
path: '/Game/RadarChart',
|
|
1076
|
+
component: () => import('@shijiu/jsview-vue-samples/JsvRadarChart/App.vue')
|
|
493
1077
|
},
|
|
494
1078
|
];
|
|
495
1079
|
|