From 8816b444edd1e50e4209d82c585bc2e999baf4be Mon Sep 17 00:00:00 2001 From: jmal Date: Sun, 23 Feb 2020 22:28:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=A8=E5=B1=80=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E5=99=A8=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SimpleUploader/globalUploader.vue | 202 ++++++++++++- src/views/demo/index.vue | 134 ++++++++- src/views/home/mobile/index.vue | 47 +-- src/views/test/360demo.html | 10 +- src/views/test/js点击触发动画.html | 31 ++ src/views/test/悬浮小球不旋转.html | 281 ++++++++++++++++++ 6 files changed, 672 insertions(+), 33 deletions(-) create mode 100644 src/views/test/js点击触发动画.html create mode 100644 src/views/test/悬浮小球不旋转.html diff --git a/src/components/SimpleUploader/globalUploader.vue b/src/components/SimpleUploader/globalUploader.vue index bcea80e..c98755a 100755 --- a/src/components/SimpleUploader/globalUploader.vue +++ b/src/components/SimpleUploader/globalUploader.vue @@ -20,13 +20,16 @@ 选择文件夹 -
+

文件列表

- - + + + + + @@ -44,6 +47,20 @@ +
+
+
+
+ +
+ + + + +
+
+
+
@@ -108,7 +125,10 @@ export default { waiting: '等待中' }, panelShow: false, // 选择文件后,展示上传panel - collapse: false + collapse: false, + isShrink: false, + process: 50, + filePanel: {} } }, computed: { @@ -326,6 +346,41 @@ export default { this.collapse = false } }, + // 展开球 + expand() { + this.isShrink = false + this.filePanel = { + 'width': '720px', + 'height': '300px', + } + }, + // 收缩成球 + shrink(){ + const that = this + setTimeout(function () { + that.isShrink = true + that.filePanel = { + 'color': 'white', + 'z-index': '-1', + 'right': '66px', + 'bottom': '66px', + 'width': '0px', + 'height': '0px', + cursor: 'pointer', + 'border-radius': '50%', + } + },500) + this.filePanel = { + 'color': 'white', + 'z-index': '-1', + 'right': '20px', + 'bottom': '20px', + 'width': '92px', + 'height': '92px', + cursor: 'pointer', + 'border-radius': '50%', + } + }, close() { this.uploader.cancel() this.panelShow = false @@ -405,9 +460,21 @@ export default { .file-panel { background-color: #fff; border: 1px solid #e2e2e2; - border-radius: 7px 7px 0 0; box-shadow: 0 0 10px rgba(0, 0, 0, .2); + right: 2%; + bottom: 2%; + width: 720px; + height: 300px; + color: black; + margin: auto; + overflow: hidden; + background-size: 100% 100%; + border-radius: 7px 7px 0 0; + position: fixed; + -webkit-transition: all .5s cubic-bezier(0.4, 0, 1, 1) 0s; + transition: all .5s cubic-bezier(0.4, 0, 1, 1) 0s; + ul{ white-space: nowrap; -webkit-overflow-scrolling: touch; @@ -528,4 +595,129 @@ export default { position: absolute; clip: rect(0, 0, 0, 0); } + + + + .process-area { + z-index: -1; + /*right: 20px;*/ + /*bottom: 20px;*/ + /*width: 92px;*/ + /*height: 92px;*/ + cursor: pointer; + background: #eee; + margin: auto; + overflow: hidden; + background-size: 100% 100%; + border-radius: 50%; + position: fixed; + animation: load-process-area .5s 1 linear forwards; + transition: .5s; + } + .process-anime { + position: absolute; + top: 50%; + left: 50%; + border: 4px solid #fff; + transform: translate(-50%,-50%); + width: 90px; + height: 90px; + background: linear-gradient(45deg,#fde47c,#fdeca6); + border-radius: 50%; + overflow: hidden; + } + .process-anime .cube-a { + position: absolute; + left: 50%; + background: rgba(53,53,53,.3); + width: 130px; + height: 130px; + border-radius: 50px; + animation: fx-rotate 15s infinite linear; + transform-origin: 50% 50%; + transition: .5s; + } + .process-anime .cube-b { + position: absolute; + left: 50%; + background: #fff; + width: 130px; + height: 130px; + border-radius: 50px; + animation: fx-rotate 10s infinite reverse linear; + transform-origin: 50% 50%; + transition: .5s; + } + + /**成功**/ + .process-anime .done { + position: absolute; + width: 45px; + height: 45px; + top: 50%; + left: 50%; + transform: translate(-50%,-50%) scale(2.25); + } + .process-anime .done .checkmark { + width: 45px; + height: 45px; + border-radius: 50%; + display: block; + stroke-width: 2; + stroke: #fff; + stroke-miterlimit: 10; + box-shadow: inset 0 0 0 #fdda65; + animation: fill-data .4s ease-in-out .4s forwards,scale-data .3s ease-in-out .9s both; + } + .process-anime .done .checkmark__check { + transform: translate(2px,2px); + transform-origin: 50% 50%; + stroke-dasharray: 48; + stroke-dashoffset: 48; + animation: stroke-data .3s cubic-bezier(.65,0,.45,1) .8s forwards; + } + + @keyframes fx-rotate { + 0% { + transform: translate(-50%) rotate(0); + } + 100% { + transform: translate(-50%,2px) rotate(365deg); + } + } + + @keyframes scale-data { + 0%, 100% { + transform: none; + } + 50% { + transform: scale3d(1.1,1.1,1); + } + } + @keyframes fill-data { + 100% { + box-shadow: inset 0 0 0 30px #fdda65; + } + } + + @keyframes stroke-data { + 100% { + stroke-dashoffset: 0; + } + } + + @keyframes load-process-area { + 0% { + right: 66px; + bottom: 66px; + width: 0; + height: 0; + } + 100% { + right: 20px; + bottom: 20px; + width: 92px; + height: 92px; + } + } diff --git a/src/views/demo/index.vue b/src/views/demo/index.vue index 1db64ad..a41d9c0 100644 --- a/src/views/demo/index.vue +++ b/src/views/demo/index.vue @@ -1,9 +1,133 @@ + diff --git a/src/views/home/mobile/index.vue b/src/views/home/mobile/index.vue index 309b201..502d33f 100644 --- a/src/views/home/mobile/index.vue +++ b/src/views/home/mobile/index.vue @@ -40,23 +40,9 @@ - - - - + - - - - - - - - - - - @@ -447,19 +433,44 @@ .tab-bottom { padding: 0 0 25px 0; + .van-tabbar-item { + margin-top:25px; + animation:ordinary .4s forwards; + -moz-animation:ordinary .4s forwards; /* Firefox */ + -webkit-animation:ordinary .4s forwards; /* Safari and Chrome */ + -o-animation:ordinary .4s forwards; /* Opera */ + } + } + + @keyframes iphoneX + { + from {margin-top:25px;} + to {margin-top:-5px;} + } + + @keyframes ordinary + { + from {margin-top:-5px;} + to {margin-top:25px;} } .tab-bottom-iphoneX { padding: 0 0 25px 0; .van-tabbar-item { - margin-top: -5px; + animation:iphoneX .4s forwards; + -moz-animation:iphoneX .4s forwards; /* Firefox */ + -webkit-animation:iphoneX .4s forwards; /* Safari and Chrome */ + -o-animation:iphoneX .5s forwards; /* Opera */ } } .tab-bottom-iphoneXS { padding: 0 0 25px 0; .van-tabbar-item { - margin-top: -5px; + animation:iphoneX .4s forwards; + -moz-animation:iphoneX .4s forwards; /* Firefox */ + -webkit-animation:iphoneX .4s forwards; /* Safari and Chrome */ + -o-animation:iphoneX .4s forwards; /* Opera */ } } @@ -522,7 +533,7 @@ .van-nav-bar { background: #ffffffcc; position: relative; - box-shadow: 4px 0px 2px rgba(0,0,0,0.5); + box-shadow: 4px 0 2px rgba(0,0,0,0.5); } .van-nav-bar::after{ background: inherit; diff --git a/src/views/test/360demo.html b/src/views/test/360demo.html index 5a4ba2c..792d2e1 100644 --- a/src/views/test/360demo.html +++ b/src/views/test/360demo.html @@ -155,11 +155,11 @@
- - - - - +
+ + + +
diff --git a/src/views/test/js点击触发动画.html b/src/views/test/js点击触发动画.html new file mode 100644 index 0000000..84c102c --- /dev/null +++ b/src/views/test/js点击触发动画.html @@ -0,0 +1,31 @@ + + + + + + + + + +
+ + diff --git a/src/views/test/悬浮小球不旋转.html b/src/views/test/悬浮小球不旋转.html new file mode 100644 index 0000000..a0c542b --- /dev/null +++ b/src/views/test/悬浮小球不旋转.html @@ -0,0 +1,281 @@ + + + + + + + 悬浮小球不旋转 + + + + + + + + +
+
+
+
+ + + + + + +
+ + + +