Commit e043575d by wangyalan-git

首页

parent f09a3c67
...@@ -3595,6 +3595,11 @@ ...@@ -3595,6 +3595,11 @@
} }
} }
}, },
"comutils": {
"version": "1.1.19",
"resolved": "https://registry.npm.taobao.org/comutils/download/comutils-1.1.19.tgz",
"integrity": "sha1-PgfzBqv0joNyZRFxOnKyBWUDREM="
},
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz",
...@@ -12201,6 +12206,14 @@ ...@@ -12201,6 +12206,14 @@
"resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.5.1.tgz?cache=0&sync_timestamp=1617697788171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.5.1.tgz", "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.5.1.tgz?cache=0&sync_timestamp=1617697788171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.5.1.tgz",
"integrity": "sha1-7fPPSQeVLR4Fg+B5I3Igxf9utsk=" "integrity": "sha1-7fPPSQeVLR4Fg+B5I3Igxf9utsk="
}, },
"vue-seamless-scroll": {
"version": "1.1.23",
"resolved": "https://registry.npm.taobao.org/vue-seamless-scroll/download/vue-seamless-scroll-1.1.23.tgz",
"integrity": "sha1-3egbPHmqSZeRs8O//Q/bIv8+Wac=",
"requires": {
"comutils": "^1.1.9"
}
},
"vue-style-loader": { "vue-style-loader": {
"version": "4.1.3", "version": "4.1.3",
"resolved": "https://registry.nlark.com/vue-style-loader/download/vue-style-loader-4.1.3.tgz", "resolved": "https://registry.nlark.com/vue-style-loader/download/vue-style-loader-4.1.3.tgz",
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
"element-ui": "^2.15.1", "element-ui": "^2.15.1",
"vue": "^2.6.11", "vue": "^2.6.11",
"vue-router": "^3.5.1", "vue-router": "^3.5.1",
"vue-seamless-scroll": "^1.1.23",
"vue-video-player": "^5.0.2" "vue-video-player": "^5.0.2"
}, },
"devDependencies": { "devDependencies": {
......
src/assets/images/Map.png

242 KB | W: | H:

src/assets/images/Map.png

906 KB | W: | H:

src/assets/images/Map.png
src/assets/images/Map.png
src/assets/images/Map.png
src/assets/images/Map.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/images/Password.png

1.31 KB | W: | H:

src/assets/images/Password.png

1.32 KB | W: | H:

src/assets/images/Password.png
src/assets/images/Password.png
src/assets/images/Password.png
src/assets/images/Password.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/images/logo.png

6.94 KB | W: | H:

src/assets/images/logo.png

6.06 KB | W: | H:

src/assets/images/logo.png
src/assets/images/logo.png
src/assets/images/logo.png
src/assets/images/logo.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/images/user.png

1.32 KB | W: | H:

src/assets/images/user.png

1.34 KB | W: | H:

src/assets/images/user.png
src/assets/images/user.png
src/assets/images/user.png
src/assets/images/user.png
  • 2-up
  • Swipe
  • Onion skin
/* 改变主题色变量 */ /* 改变主题色变量 */
$--color-primary: #CAA774; $--color-primary: #caa774;
/* 改变 icon 字体路径变量,必需 */ /* 改变 icon 字体路径变量,必需 */
$--font-path: '~element-ui/lib/theme-chalk/fonts'; $--font-path: "~element-ui/lib/theme-chalk/fonts";
* { html,
margin: 0; body,
padding: 0; p,
} div,
ul,
html, body { li {
font-size: 12px; margin: 0;
min-height: 100%; padding: 0;
} }
.font12 { html,
font-size: 12px; body {
} font-size: 12px;
min-height: 100%;
.font14 { }
font-size: 14px;
} .font12 {
font-size: 12px;
.font18 { }
font-size: 18px;
} .font14 {
font-size: 14px;
.font24 { }
font-size: 24px;
} .font18 {
font-size: 18px;
.font30 { }
font-size: 30px;
} .font24 {
font-size: 24px;
.bold { }
font-weight: bold;
} .font30 {
font-size: 30px;
a { }
color: #020202;
} .bold {
font-weight: bold;
a:hover { }
color: $--color-primary;
} a {
color: #020202;
}
a:hover {
color: $--color-primary;
}
img {
width: 100%;
object-fit: cover;
}
.my_icon {
width: 15px;
margin-right: 5px;
vertical-align: middle;
}
.banner {
img { img {
width: 100%; max-height: 300px;
object-fit: cover;
}
.my_icon {
width: 15px;
margin-right: 5px;
vertical-align: middle;
}
.banner {
img {
max-height: 300px;
}
}
ul,
ol,
dl {
list-style: none;
}
.align_left {
text-align: left;
}
.align_center {
text-align: center;
}
.clearFix {
zoom: 1;
}
.clearFix:after {
content: '';
display: block;
height: 0;
clear: both;
}
.flex,
.flexRow {
display: flex;
justify-content: space-between;
align-items: center;
}
.flexCol {
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
}
.flex_start {
display: flex;
align-items: baseline;
}
.pointer {
cursor: pointer;
}
.right {
list-style: none;
}
.mr_10 {
margin-right: 10px;
}
.mt_10 {
margin-top: 10px;
}
.mt_20 {
margin-top: 20px;
}
.ml_10 {
margin-left: 10px;
}
.mb_10 {
margin-bottom: 10px;
} }
}
.mr_15 {
margin-right: 15px; ul,
} ol,
dl {
.mr_20 { list-style: none;
margin-right: 20px; }
}
.align_left {
.position_relative { text-align: left;
position: relative; }
}
.align_center {
.primary { text-align: center;
color: $--color-primary !important; }
}
.clearFix {
.back_primary { zoom: 1;
background: $--color-primary !important; }
color: #fff !important;
} .clearFix:after {
content: "";
.border_primary { display: block;
border: 1px solid $--color-primary; height: 0;
} clear: both;
}
.back_two {
background: #f17123 !important; .flex,
color: #fff !important; .flexRow {
} display: flex;
justify-content: space-between;
.back_three { align-items: center;
background: #ffb400 !important; }
color: #fff !important;
} .flexCol {
display: flex;
//图片放大功能 flex-direction: column;
.zoom { justify-content: flex-start;
width: 220px; align-items: center;
height: 220px; }
overflow: hidden;
} .flex_start {
display: flex;
.zoom_img { align-items: baseline;
transition: all 1s; }
}
.pointer {
.zoom_img:hover { cursor: pointer;
transform: scale(1.2); }
}
.right {
@import "~element-ui/packages/theme-chalk/src/index"; list-style: none;
\ No newline at end of file }
.mr_10 {
margin-right: 10px;
}
.mt_10 {
margin-top: 10px;
}
.mt_20 {
margin-top: 20px;
}
.ml_10 {
margin-left: 10px;
}
.mb_10 {
margin-bottom: 10px;
}
.mr_15 {
margin-right: 15px;
}
.mr_20 {
margin-right: 20px;
}
.position_relative {
position: relative;
}
.primary {
color: $--color-primary !important;
}
.back_primary {
background: $--color-primary !important;
color: #fff !important;
}
.border_primary {
border: 1px solid $--color-primary;
}
.back_two {
background: #f17123 !important;
color: #fff !important;
}
.back_three {
background: #ffb400 !important;
color: #fff !important;
}
//图片放大功能
.zoom {
width: 220px;
height: 220px;
overflow: hidden;
}
.zoom_img {
transition: all 1s;
}
.zoom_img:hover {
transform: scale(1.2);
}
@import "~element-ui/packages/theme-chalk/src/index";
<template> <template>
<div class="header"> <div class="header">
<img src="@/assets/images/logo.png" alt="" class="logo" /> <div style="display: flex;flex: 1;">
<img src="@/assets/images/logo.png" alt="" class="logo" />
<ul class="right-ul">
<li>纪念馆列表</li>
<li>APP下载</li>
</ul>
</div>
<ul class="right-ul"> <ul class="right-ul">
<li><img src="@/assets/images/Signin.png" alt="" class="avatar" />登录</li> <li><img src="@/assets/images/Signin.png" alt="" class="avatar" />登录</li>
<li>用户协议</li> <li>用户协议</li>
...@@ -30,12 +36,15 @@ export default { ...@@ -30,12 +36,15 @@ export default {
right: 0; right: 0;
z-index: 999; z-index: 999;
.logo{ .logo{
width: 200px; width: 200px;
margin-right: 30px;
object-fit: contain;
} }
} }
.header .right-ul { .header .right-ul {
display: flex; display: flex;
flex-shrink: 0;
align-items: center; align-items: center;
> li { > li {
margin-right: 25px; margin-right: 25px;
......
...@@ -4,7 +4,6 @@ import router from './router' ...@@ -4,7 +4,6 @@ import router from './router'
import ElementUI from 'element-ui'; import ElementUI from 'element-ui';
import '@/assets/styles/element-variables.scss' import '@/assets/styles/element-variables.scss'
import animated from 'animate.css' // npm install animate.css --save安装,在引入 import animated from 'animate.css' // npm install animate.css --save安装,在引入
Vue.use(animated) Vue.use(animated)
Vue.config.productionTip = false Vue.config.productionTip = false
Vue.use(ElementUI); Vue.use(ElementUI);
......
<template> <template>
<div> <div class="root">
<div id="wrap" :style="{ height: screenHeight + 'px' }"> <custom-header></custom-header>
<Header></Header> <!-- 第一屏 -->
<div class="main" id="main" :style="{ top: nowTop + 'px' }"> <div class="page bg-image" id="page1" @mousewheel="scrollFun">
<!-- 第一屏 --> <transition leave-active-class="titleHidden">
<div class="show-bg page" id="page1"> <img
<transition leave-active-class="animateTitle"> class="show-title"
<img src="@/assets/images/writtenwords.png"
class="show-title" alt=""
src="@/assets/images/writtenwords.png" v-if="screenIndex == 1"
alt="" />
v-if="screenIndex == 1" </transition>
/> <transition
</transition> :enter-active-class="screenIndex == 2 ? 'fallVideo' : ''"
<div leave-active-class="screenIndex == 1"
>
<div
:class="[
{
'animate-video':
screenIndex == 2 ||
screenIndex == 3 ||
screenIndex == 4 ||
screenIndex == 5,
},
'show-video',
]"
>
<video
autoplay
loop
:class="[ :class="[
{ {
'animate-video': 'animate-video':
...@@ -22,120 +38,180 @@ ...@@ -22,120 +38,180 @@
screenIndex == 4 || screenIndex == 4 ||
screenIndex == 5, screenIndex == 5,
}, },
'show-video', 'video',
]" ]"
v-on:canplay="canplay"
muted
ref="video"
> >
<video <source :src="PATH_TO_MP4" type="video/mp4" />
autoplay 浏览器不支持 video 标签,建议升级浏览器。
loop <!-- <source :src="PATH_TO_WEBM" type="video/webm"/>
:class="[{ 'show-border': screenIndex == 4 }, 'video']"
v-on:canplay="canplay"
muted
ref="video"
>
<source :src="PATH_TO_MP4" type="video/mp4" />
浏览器不支持 video 标签,建议升级浏览器。
<!-- <source :src="PATH_TO_WEBM" type="video/webm"/>
浏览器不支持 video 标签,建议升级浏览器。 --> 浏览器不支持 video 标签,建议升级浏览器。 -->
</video> </video>
<transition <transition
enter-active-class="animated mask-video" :enter-active-class="screenIndex == 4 ? 'scaleLeftShow' : ''"
leave-active-class="animated bounceOutDown" leave-active-class="scaleLeftHidden"
> >
<div class="show-url" v-if="screenIndex == 4 || screenIndex == 5"> <div class="show-url" v-if="screenIndex == 4 || screenIndex == 5">
<img src="@/assets/images/1605239923175.png" alt="" /> <img src="@/assets/images/1605239923175.png" alt="" />
</div> </div>
</transition>
</div>
<transition leave-active-class="animated bounceOutDown">
<div class="show-mask" v-if="screenIndex == 3"></div>
</transition> </transition>
<transition <transition
enter-active-class="animated bounceInUp" :enter-active-class="screenIndex == 4 ? 'scaleRightShow' : ''"
leave-active-class="animated bounceOutDown" leave-active-class=" scaleRightHidden"
> >
<img <div
class="mask-img" class="show-border"
src="@/assets/images/writtenwordsone.png" v-if="screenIndex == 4 || screenIndex == 5"
alt="" ></div>
v-if="screenIndex == 3"
/>
</transition> </transition>
<div class="show-mask" v-if="screenIndex == 5">
<img src="@/assets/images/writtenwordstwo.png" alt="" />
</div>
</div> </div>
<div class="show-bg page" id="page2"> </transition>
<div class="show-tab"> <transition leave-active-class="animated bounceOutDown">
<img src="@/assets/images/198A5253.png" alt="" /> <div
<div class="my-tab"> class="show-mask"
<ul> v-if="screenIndex == 3 || screenIndex == 5"
<li ></div>
@click="changeTab(item.id)" </transition>
:class="checkedTab == item.id ? 'checked' : ''" <transition
v-for="(item, index) in tabs" enter-active-class="animated bounceInUp"
:key="index" leave-active-class="animated bounceOutDown"
> >
{{ item.name }} <img
</li> class="mask-img"
</ul> src="@/assets/images/writtenwordsone.png"
<div class="show-tip"> alt=""
我们提供了丰富模版,根据自己喜欢可自由选择 v-if="screenIndex == 3"
</div> />
</div> </transition>
</div> <transition
enter-active-class="animated bounceInUp"
leave-active-class="animated bounceOutDown"
>
<img
src="@/assets/images/writtenwordstwo.png"
v-if="screenIndex == 5"
class="mask-img"
alt=""
/>
</transition>
</div>
<div class="page" id="page2">
<div class="show-tab">
<img src="@/assets/images/Map.png" alt="" class="small" />
<div class="tab-mask"></div>
<div class="my-tab">
<ul>
<li
@click="changeTab(item.id)"
:class="checkedTab == item.id ? 'special-color' : ''"
v-for="(item, index) in tabs"
:key="index"
>
{{ item.name }}
</li>
</ul>
<div class="show-tip">我们提供了丰富模版,根据自己喜欢可自由选择</div>
</div> </div>
<div class="show-bg page" id="page3"> </div>
<img </div>
src="@/assets/images/writtenwordssix.png" <div class="page" id="page3">
class="show-moretitle" <div class="show-scrollword">
alt="" <p>尊重生命</p>
/> <p class="special-color">传承文化</p>
<div class="show-more"> <p>
<div v-class="'animated bounce'"> 无限的数据空间,可以承载无数的文化传承,我们尊重生命,感恩世界,那些曾经的过往,也是我们及子孙后代无价的宝藏!
<img src="@/assets/images/Warehouse.png" alt="" /> </p>
<p class="show-subtitle">应用仓库</p> </div>
<p>不断扩展应用库</p> <div class="scroll-table">
<p>满足不同用户需求</p> <p class="title">部分纪念馆案例</p>
</div> <vue-seamless-scroll
<div v-class="'animated bounce'"> :data="hallList"
<img src="@/assets/images/Administration.png" alt="" /> :class-option="optionLeft"
<p class="show-subtitle">轻管理</p> class="seamless-warp2"
<p>有APP、PC两端</p> >
<p>管理</p> <ul class="item">
</div> <li v-for="(item, index) in hallList" :key="index">
<div v-class="'animated bounce'"> <img :src="item.icon" alt="" />
<img src="@/assets/images/security.png" alt="" /> </li>
<p class="show-subtitle">更安全</p> </ul>
<p>资料可存入私人</p> </vue-seamless-scroll>
<p>oss存储空间</p> <vue-seamless-scroll
</div> :data="hallList"
<div v-class="'animated bounce'"> :class-option="optionRight"
<img src="@/assets/images/Multiterminal.png" alt="" /> class="seamless-warp2"
<p class="show-subtitle">多端展示</p> >
<p>手机端、IAPD和</p> <ul class="item">
<p>TV端</p> <li v-for="(item, index) in hallList" :key="index">
</div> <img :src="item.icon" alt="" />
</li>
</ul>
</vue-seamless-scroll>
<vue-seamless-scroll
:data="hallList"
:class-option="optionLeft"
class="seamless-warp2"
>
<ul class="item">
<li v-for="(item, index) in hallList" :key="index">
<img :src="item.icon" alt="" />
</li>
</ul>
</vue-seamless-scroll>
</div>
</div>
<div class="page bg-image" id="page4">
<div class="show-moretitle">
<p>突破技术壁垒</p>
<p class="special-color">安全、便捷、极致体验</p>
</div>
<div class="show-more">
<transition enter-active-class="animated bounce">
<div>
<img src="@/assets/images/application.png" alt="" />
<p class="show-subtitle">云应用</p>
<p>应用商店,不断扩展应用库</p>
<p>根据需要可自行安装,满足</p>
<p>不同用户需求</p>
</div> </div>
<div class="show-btn"> </transition>
<p>立即创建</p> <transition enter-active-class="animated bounce">
<p>安泰乐·网上生命记念馆</p> <div>
<img src="@/assets/images/Deposit.png" alt="" />
<p class="show-subtitle">私有云存储</p>
<p>可将数据存入个人的云存储</p>
<p>空间,保证用户数据安全。</p>
</div> </div>
</div> </transition>
<transition enter-active-class="animated bounce">
<div>
<img src="@/assets/images/Exhibition.png" alt="" />
<p class="show-subtitle">多端展示</p>
<p>线上生命纪念馆可以展示在</p>
<p>手机、电脑、TV上,不同的</p>
<p>应用场景可以随时可切换</p>
</div>
</transition>
</div>
<div class="show-btn">
<p>立即创建</p>
<p>安泰乐·网上生命记念馆</p>
</div> </div>
<Footer></Footer>
</div> </div>
<custom-footer></custom-footer>
</div> </div>
</template> </template>
<script> <script>
import Header from "@/components/Header"; import CustomHeader from "@/components/Header";
import Footer from "@/components/Footer"; import CustomFooter from "@/components/Footer";
import vueSeamlessScroll from "vue-seamless-scroll";
export default { export default {
name: "index", name: "index",
components: { components: {
Header, CustomHeader,
Footer, CustomFooter,
vueSeamlessScroll,
}, },
props: {}, props: {},
...@@ -143,18 +219,18 @@ export default { ...@@ -143,18 +219,18 @@ export default {
return { return {
vedioCanPlay: false, vedioCanPlay: false,
PATH_TO_MP4: "https://atlimg.oss-cn-hangzhou.aliyuncs.com/web/2574.mp4", PATH_TO_MP4: "https://atlimg.oss-cn-hangzhou.aliyuncs.com/web/2574.mp4",
scrollTop: 0,
screenWeight: 0, // 屏幕宽度 screenWeight: 0, // 屏幕宽度
screenHeight: 0, // 屏幕高度 screenHeight: 0, // 屏幕高度
index: 1, // 用于判断翻页
screenIndex: 1, //用于记录第一页面内部的顺序 screenIndex: 1, //用于记录第一页面内部的顺序
curIndex: 1, // 当前页的index
startTime: 0, // 翻屏起始时间 startTime: 0, // 翻屏起始时间
endTime: 0, // 上一次翻屏结束时间 endTime: 0, // 上一次翻屏结束时间
nowTop: 0, // 翻屏后top的位置
pageNum: 0, // 一共有多少页 pageNum: 0, // 一共有多少页
main: Object, main: Object,
obj: Object, obj: Object,
hallList: new Array(60).fill({
icon:
"https://thirdwx.qlogo.cn/mmopen/vi_32/exXiaSqNfYBXic1ibB6Ugfg5OPWBDZibM46VibhlRdSovAIic8uYrgmkQD7HgRrQGuKxhTW56T9NMy28KlwkfkdMvxLg/132",
}),
checkedTab: 1, checkedTab: 1,
tabs: [ tabs: [
{ id: 1, name: "风格多样化" }, { id: 1, name: "风格多样化" },
...@@ -170,23 +246,9 @@ export default { ...@@ -170,23 +246,9 @@ export default {
this.obj = document.getElementsByTagName("div"); this.obj = document.getElementsByTagName("div");
for (let i = 0; i < this.obj.length; i++) { for (let i = 0; i < this.obj.length; i++) {
if (this.obj[i].className.indexOf("page") != -1) { if (this.obj[i].className.indexOf("page") != -1) {
// console.log("this.obj[i]",this.obj[i].className)
this.obj[i].style.height = this.screenHeight + "px"; this.obj[i].style.height = this.screenHeight + "px";
} }
} }
this.pageNum = document.querySelectorAll(".page").length;
// console.log("page",this.pageNum,this.obj)
// 浏览器兼容
if (navigator.userAgent.toLowerCase().indexOf("firefox") != -1) {
document.addEventListener("DOMMouseScroll", this.scrollFun, false);
} else if (document.addEventListener) {
document.addEventListener("mousewheel", this.scrollFun, false);
} else if (document.attachEvent) {
document.attachEvent("onmousewheel", this.scrollFun);
} else {
document.onmousewheel = this.scrollFun;
}
}, },
methods: { methods: {
scrollFun(event) { scrollFun(event) {
...@@ -196,119 +258,69 @@ export default { ...@@ -196,119 +258,69 @@ export default {
let delta = event.detail || -event.wheelDelta; let delta = event.detail || -event.wheelDelta;
// 如果当前滚动开始时间和上次滚动结束时间的差值小于1.5s,则不执行翻页动作,这样做是为了实现类似节流的效果 // 如果当前滚动开始时间和上次滚动结束时间的差值小于1.5s,则不执行翻页动作,这样做是为了实现类似节流的效果
if (this.startTime - this.endTime > 500) { if (this.startTime - this.endTime > 500) {
if ( if (delta > 0 && this.screenIndex < 5) {
delta > 0 && console.log(1, this.screenIndex);
parseInt(this.main.offsetTop) >= this.screenIndex++;
-(this.screenHeight * (this.pageNum - 2)) }
) { if (delta < 0 && this.screenIndex > 1) {
console.log("向下"); console.log(2, this.screenIndex);
if (this.index == 1) { this.screenIndex--;
this.screenIndex++; }
} if (this.screenIndex <= 5) {
if (this.screenIndex == 5) { console.log(3, this.screenIndex);
// 向下滚动 event.preventDefault();
this.index++;
this.toPage(this.index);
}
} else if (delta < 0 && parseInt(this.main.offsetTop) < 0) {
console.log("向上,index", this.index);
if (this.index == 1) {
this.screenIndex--;
}
if (this.screenIndex == 5) {
// 向上滚动
this.index--;
this.toPage(this.index);
}
} }
// 本次翻页结束,记录结束时间,用于下次判断 // 本次翻页结束,记录结束时间,用于下次判断
this.endTime = new Date().getTime(); this.endTime = new Date().getTime();
} else {
console.log(
"this.index例外",
this.index,
this.screenIndex,
this.main.offsetTop
);
if (delta < 0 && this.index == 1) {
if (this.screenIndex > 1) {
console.log(111111);
this.screenIndex--;
}
}
}
},
// 翻页
toPage(index) {
if (index != this.curIndex) {
let delta = index - this.curIndex;
this.nowTop = this.nowTop - delta * this.screenHeight;
this.curIndex = index;
console.log("index", this.curIndex);
} }
}, },
changeTab(id) { changeTab(id) {
this.checkedTab = id; this.checkedTab = id;
}, },
handleScroll() {
// 实现当滚动到指定位置,触发动画
console.log(11111);
let scrollHeight =
document.documentElement.scrollTop || document.body.scrollTop; //滚动高度
this.scrollTop = scrollHeight;
console.log("scrollHeight", scrollHeight);
},
canplay() { canplay() {
this.vedioCanPlay = true; this.vedioCanPlay = true;
console.log(this.vedioCanPlay); console.log(this.vedioCanPlay);
}, },
}, },
computed: {
optionLeft() {
return {
direction: 2,
limitMoveNum: 1,
};
},
optionRight() {
return {
direction: 3,
limitMoveNum: 1,
};
},
},
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
html, .root {
body {
height: 100%;
}
body,
ul,
li,
a,
p,
div {
/*慎删*/
padding: 0px;
margin: 0px;
}
#wrap {
overflow: hidden;
width: 100%; width: 100%;
background: #091a38; background: #070d1d;
} }
.bg-image {
#main { background: url("~@/assets/images/BG.png") no-repeat;
position: relative; background-size: 100% 100%;
width: 100%;
text-align: center;
margin: 0 auto;
margin-bottom: 100px;
transition: top 1.5s;
} }
.page { .page {
/*谨删*/
width: 100%; width: 100%;
margin: 0; padding-top: 70px;
}
.show-bg {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
position: relative; position: relative;
box-sizing: border-box;
overflow: scroll;
}
::-webkit-scrollbar {
display: none; /*ChromeSafari*/
} }
.show-video { .show-video {
...@@ -316,56 +328,56 @@ div { ...@@ -316,56 +328,56 @@ div {
height: 60%; height: 60%;
max-width: 800px; max-width: 800px;
max-height: 600px; max-height: 600px;
margin-top: 140px;
border-radius: 30px; border-radius: 30px;
-webkit-backface-visibility: visible !important;
backface-visibility: visible !important;
position: relative; position: relative;
transform: perspective(1200px) rotate3d(1, 0, 0, 50deg); -webkit-transform-style: preserve-3d;
.show-border { -moz-transform-style: preserve-3d;
border: 10px solid #000; transform-style: preserve-3d;
box-sizing: border-box; -webkit-perspective: 1200px;
} -moz-perspective: 1200px;
perspective: 1200px;
.video { .video {
object-fit: fill; object-fit: fill;
border-radius: 10px; border-radius: 10px;
width: 100%; width: 100%;
height: 100%; height: 100%;
transform: translate3d(0px, 0px, 0px) rotateX(59.9972deg);
&.animate-video {
transform: translate(0px, 0px);
-webkit-animation-duration: 0.5s;
animation-duration: 0.5s;
-webkit-animation-name: fallVideo;
animation-name: fallVideo;
}
} }
&.animate-video {
transform: perspective(1200px) scale(1.2);
-webkit-animation-duration: 0.5s;
animation-duration: 0.5s;
-webkit-animation-name: flipInX;
animation-name: flipInX;
}
// .scale-video{
// -webkit-animation-duration: 0.5s;
// animation-duration: 0.5s;
// transform: scale(1.5);
// }
.show-url { .show-url {
width: 35%; width: 35%;
position: absolute; position: absolute;
left: 0; left: 0;
top: 0; top: 0;
bottom: 5px; bottom: 0;
z-index: 1; z-index: 1;
border: 10px solid #000; border: 10px solid #000;
transform: translate(0px, 0px);
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.show-border {
width: 62%;
position: absolute;
top: 0;
right: 0;
bottom: 0;
z-index: 1;
border: 10px solid #000;
}
} }
.show-title { .show-title {
width: 30%; width: 30%;
transform: translate3d(0px, 129.735px, 0px); padding: 15% 0 140px;
} box-sizing: border-box;
.animateTitle {
transform: translate(0px, -288.333px);
} }
.show-mask { .show-mask {
width: 100%; width: 100%;
...@@ -389,15 +401,91 @@ div { ...@@ -389,15 +401,91 @@ div {
margin-left: -20%; margin-left: -20%;
z-index: 2; z-index: 2;
} }
.show-scrollword {
width: 80%;
margin: 50px auto 80px;
text-align: center;
color: #cccccc;
font-size: 24px;
display: flex;
flex-direction: column;
align-items: center;
p:first-child {
margin-bottom: 10px;
color: #fff;
font-size: 60px;
}
p:nth-child(2) {
font-size: 60px;
}
p:last-child {
text-align: left;
margin-top: 40px;
width: 76%;
}
}
.scroll-table {
width: 70%;
// height: 650px;
padding: 20px 0;
background: #202020;
border-radius: 20px;
.title {
color: #ffffff;
padding: 0 30px 10px;
font-size: 30px;
text-align: left;
}
// 动画效果
.seamless-warp2 {
overflow: hidden;
width: 100%;
ul.item {
display: flex;
align-items: center;
margin-top: 10px;
li {
img {
width: 160px;
height: 160px;
border-radius: 25px;
margin-right: 10px;
}
}
}
}
}
.tab-mask {
position: absolute;
bottom: 0;
left: 0;
right: 0;
width: 100%;
height: 50%;
background-image: linear-gradient(
to top,
#070d1d,
rgba(11, 11, 20, 0.85) 25%,
rgba(11, 11, 20, 0.45) 50%,
rgba(11, 11, 20, 0)
);
}
.show-tab { .show-tab {
width: 100%; width: 100%;
height: 100%; height: 100%;
position: relative; position: relative;
img { // background: no-repeat center bottom / 100% 100%;
background-image: url("~@/assets/images/ptfdjk.png");
.small {
width: 100%; width: 100%;
// max-height: 70%; z-index: 2;
height: 100%; position: absolute;
left: 50%;
top: 10%;
transform: translate(-50%);
width: 80%;
} }
.my-tab { .my-tab {
width: 40%; width: 40%;
position: absolute; position: absolute;
...@@ -406,6 +494,7 @@ div { ...@@ -406,6 +494,7 @@ div {
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
bottom: 30px; bottom: 30px;
z-index: 1; z-index: 1;
ul { ul {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
...@@ -418,25 +507,7 @@ div { ...@@ -418,25 +507,7 @@ div {
font-size: 26px; font-size: 26px;
font-weight: bold; font-weight: bold;
cursor: pointer; cursor: pointer;
&.checked { &.special-color::after {
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
background-image: -webkit-gradient(
linear,
left top,
right top,
from(#b8832d),
to(#f6c943)
);
background-image: -webkit-linear-gradient(left, #b8832d, #f6c943);
background-image: -moz-linear-gradient(left, #b8832d, #f6c943);
background-image: linear-gradient(to right, #b8832d, #f6c943);
color: linear-gradient(to right, #b8832d, #f6c943);
border-bottom: 1px solid linear-gradient(to right, #b8832d, #f6c943);
position: relative;
}
&.checked::after {
content: ""; content: "";
// width: 20%; // width: 20%;
height: 2px; height: 2px;
...@@ -454,9 +525,11 @@ div { ...@@ -454,9 +525,11 @@ div {
from(#b8832d), from(#b8832d),
to(#f6c943) to(#f6c943)
); );
background-image: -webkit-linear-gradient(left, #b8832d, #f6c943); background-image: -webkit-linear-gradient(top, #b8832d, #f6c943);
background-image: -moz-linear-gradient(left, #b8832d, #f6c943); background-image: -moz-linear-gradient(top, #b8832d, #f6c943);
background-image: linear-gradient(to right, #b8832d, #f6c943); background-image: linear-gradient(to bottom, #b8832d, #f6c943);
color: linear-gradient(to bottom, #b8832d, #f6c943);
border-bottom: 1px solid linear-gradient(to bottom, #b8832d, #f6c943);
} }
} }
.show-tip { .show-tip {
...@@ -467,17 +540,115 @@ div { ...@@ -467,17 +540,115 @@ div {
} }
} }
} }
.mask-video { .titleShow {
transform: translate3d(-692px, 0px, 576.667px) scale(1.3, 1.3); -webkit-animation-duration: 0.5s;
animation-duration: 0.5s;
-webkit-animation-name: titleShow;
animation-name: titleShow;
}
.titleHidden {
-webkit-animation-duration: 0.5s;
animation-duration: 0.5s;
-webkit-animation-name: titleHidden;
animation-name: titleHidden;
}
.scaleLeftShow {
-webkit-animation-duration: 0.5s;
animation-duration: 0.5s;
-webkit-animation-name: scaleLeftShow;
animation-name: scaleLeftShow;
}
.scaleRightShow {
-webkit-animation-duration: 0.5s;
animation-duration: 0.5s;
-webkit-animation-name: scaleRightShow;
animation-name: scaleRightShow;
}
.scaleLeftHidden {
-webkit-animation-duration: 0.5s;
animation-duration: 0.5s;
-webkit-animation-name: scaleLeftHidden;
animation-name: scaleLeftHidden;
}
.scaleRightHidden {
-webkit-animation-duration: 0.5s;
animation-duration: 0.5s;
-webkit-animation-name: scaleRightHidden;
animation-name: scaleRightHidden;
}
.fallVideo {
-webkit-animation-duration: 0.5s; -webkit-animation-duration: 0.5s;
animation-duration: 0.5s; animation-duration: 0.5s;
-webkit-animation-name: scaleHidden; -webkit-animation-name: fallVideo;
animation-name: scaleHidden; animation-name: fallVideo;
}
@keyframes fallVideo {
from {
-webkit-transform: translate3d(0px, 0px, 0px) rotateX(59.9972deg);
transform: translate3d(0px, 0px, 0px) rotateX(59.9972deg);
transform-origin: center bottom;
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
}
to {
// transform-origin: center bottom;
-webkit-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
}
@keyframes titleShow {
from {
-webkit-transform: translate(0px, -208.333px);
transform: translate(0px, -208.333px);
// transform-origin: center bottom;
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
}
to {
// transform-origin: center bottom;
-webkit-transform: translate3d(0px, 93.7356px, 0px);
transform: translate3d(0px, 93.7356px, 0px);
}
}
@keyframes titleHidden {
from {
-webkit-transform: translate3d(0px, 93.7356px, 0px);
transform: translate3d(0px, 93.7356px, 0px);
// transform-origin: center bottom;
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
}
to {
// transform-origin: center bottom;
-webkit-transform: translate(0px, -208.333px);
transform: translate(0px, -208.333px);
}
} }
@keyframes scaleHidden { @keyframes scaleLeftShow {
from { from {
-webkit-transform: translate3d(-692px, 0px, 576.667px) scale(1.3, 1.3);
transform: translate3d(-692px, 0px, 576.667px) scale(1.3, 1.3);
// transform-origin: center bottom;
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
}
to {
// transform-origin: center bottom;
-webkit-transform: translate(0px, 0px); -webkit-transform: translate(0px, 0px);
transform: translate(0px, 0px); transform: translate(0px, 0px);
}
}
@keyframes scaleRightShow {
from {
-webkit-transform: translate3d(500px, 0px, 416.667px) scale(1.3, 1.3);
transform: translate3d(500px, 0px, 416.667px) scale(1.3, 1.3);
// transform-origin: center bottom; // transform-origin: center bottom;
-webkit-animation-timing-function: linear; -webkit-animation-timing-function: linear;
animation-timing-function: linear; animation-timing-function: linear;
...@@ -485,8 +656,38 @@ div { ...@@ -485,8 +656,38 @@ div {
to { to {
// transform-origin: center bottom; // transform-origin: center bottom;
-webkit-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
}
@keyframes scaleLeftHidden {
from {
-webkit-transform: translate(0px, 0px);
transform: translate(0px, 0px);
// transform-origin: center bottom;
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
}
to {
-webkit-transform: translate3d(-692px, 0px, 576.667px) scale(1.3, 1.3); -webkit-transform: translate3d(-692px, 0px, 576.667px) scale(1.3, 1.3);
transform: translate3d(-692px, 0px, 576.667px) scale(1.3, 1.3); transform: translate3d(-692px, 0px, 576.667px) scale(1.3, 1.3);
// transform-origin: center bottom;
}
}
@keyframes scaleRightHidden {
from {
-webkit-transform: translate(0px, 0px);
transform: translate(0px, 0px);
// transform-origin: center bottom;
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
}
to {
-webkit-transform: translate3d(500px, 0px, 416.667px) scale(1.3, 1.3);
transform: translate3d(500px, 0px, 416.667px) scale(1.3, 1.3);
// transform-origin: center bottom;
} }
} }
// @-webkit-keyframes flipInX { // @-webkit-keyframes flipInX {
...@@ -522,99 +723,27 @@ div { ...@@ -522,99 +723,27 @@ div {
} }
} }
@keyframes bounceOutDown { .show-moretitle {
/*向下,向上,再直接下去:透明度为0*/ padding-bottom: 50px;
20% { p:first-child {
-webkit-transform: translate3d(0, 10px, 0); font-size: 60px;
transform: translate3d(0, 10px, 0); color: #fff;
}
40%,
45% {
opacity: 1;
-webkit-transform: translate3d(0, -20px, 0);
transform: translate3d(0, -20px, 0);
} }
p:last-child {
to { font-size: 40px;
opacity: 0;
-webkit-transform: translate3d(0, 2000px, 0);
transform: translate3d(0, 2000px, 0);
} }
} }
/*动画持续时间*/
.animated {
-webkit-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
/*动画无限循环*/
.animated.infinite {
-webkit-animation-iteration-count: infinite;
animation-iteration-count: infinite;
}
/*动画延时*/
.animated.delay-1s {
-webkit-animation-delay: 1s;
animation-delay: 1s;
}
.animated.delay-2s {
-webkit-animation-delay: 2s;
animation-delay: 2s;
}
.animated.delay-3s {
-webkit-animation-delay: 3s;
animation-delay: 3s;
}
.animated.delay-4s {
-webkit-animation-delay: 4s;
animation-delay: 4s;
}
.animated.delay-5s {
-webkit-animation-delay: 5s;
animation-delay: 5s;
}
.animated.fast {
-webkit-animation-duration: 800ms;
animation-duration: 800ms;
}
.animated.faster {
-webkit-animation-duration: 500ms;
animation-duration: 500ms;
}
.animated.slow {
-webkit-animation-duration: 2s;
animation-duration: 2s;
}
.animated.slower {
-webkit-animation-duration: 3s;
animation-duration: 3s;
}
.show-moretitle {
width: 10%;
margin: 100px 0;
}
.show-more { .show-more {
display: flex; display: flex;
align-items: center; align-items: center;
width: 80%; width: 80%;
> div { > div {
width: calc(25% - 30px); width: calc(33.3% - 30px);
margin: 15px; margin: 15px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
justify-content: center; justify-content: flex-start;
img { img {
width: 131px; width: 131px;
height: 131px; height: 131px;
...@@ -633,11 +762,11 @@ div { ...@@ -633,11 +762,11 @@ div {
} }
.show-btn { .show-btn {
background: linear-gradient(260deg, #b8832d 0%, #f6c943 100%); background: #bb862e;
border-radius: 51px; border-radius: 51px;
width: 330px; width: 390px;
padding: 10px 0; padding: 10px 0;
margin: 150px auto 300px; margin: 80px auto;
color: #ffff; color: #ffff;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
...@@ -651,6 +780,23 @@ div { ...@@ -651,6 +780,23 @@ div {
font-size: 14px; font-size: 14px;
} }
} }
// 动画效果 .special-color {
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
background-image: -webkit-gradient(
linear,
left top,
right top,
from(#b8832d),
to(#f6c943)
);
background-image: -webkit-linear-gradient(left, #b8832d, #f6c943);
background-image: -moz-linear-gradient(left, #b8832d, #f6c943);
background-image: linear-gradient(to right, #b8832d, #f6c943);
color: linear-gradient(to right, #b8832d, #f6c943);
border-bottom: 1px solid linear-gradient(to right, #b8832d, #f6c943);
position: relative;
}
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment