|
@@ -25,15 +25,16 @@
|
|
|
<img src="../../assets/img/contCun/1001.png" alt="" />
|
|
<img src="../../assets/img/contCun/1001.png" alt="" />
|
|
|
<div class="leftRow">
|
|
<div class="leftRow">
|
|
|
<div
|
|
<div
|
|
|
|
|
+ @click="cutScroll(item.id, index)"
|
|
|
class="row"
|
|
class="row"
|
|
|
- :class="{ leAc: leftInd === index }"
|
|
|
|
|
|
|
+ :class="{ leAc: leftInd === item.id }"
|
|
|
v-for="(item, index) in leftData"
|
|
v-for="(item, index) in leftData"
|
|
|
:key="item.id"
|
|
:key="item.id"
|
|
|
>
|
|
>
|
|
|
<img
|
|
<img
|
|
|
:src="
|
|
:src="
|
|
|
require(`@/assets/img/conBs${
|
|
require(`@/assets/img/conBs${
|
|
|
- leftInd === index ? 'Ac' : ''
|
|
|
|
|
|
|
+ leftInd === item.id ? 'Ac' : ''
|
|
|
}.png`)
|
|
}.png`)
|
|
|
"
|
|
"
|
|
|
alt=""
|
|
alt=""
|
|
@@ -44,7 +45,8 @@
|
|
|
</div>
|
|
</div>
|
|
|
<!-- 主要切换内容 -->
|
|
<!-- 主要切换内容 -->
|
|
|
<div class="right">
|
|
<div class="right">
|
|
|
- <Son1 @pageNext="pageNext" />
|
|
|
|
|
|
|
+ <Son1 @pageNext="pageNext" v-if="leftInd.includes('100')" />
|
|
|
|
|
+ <Son2 @pageNext="pageNext" v-else-if="leftInd.includes('200')" />
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -53,76 +55,56 @@
|
|
|
<script>
|
|
<script>
|
|
|
import { getTreeMenuApi } from "@/utils/api";
|
|
import { getTreeMenuApi } from "@/utils/api";
|
|
|
import Son1 from "./components/Son1.vue";
|
|
import Son1 from "./components/Son1.vue";
|
|
|
|
|
+import Son2 from "./components/Son2.vue";
|
|
|
export default {
|
|
export default {
|
|
|
name: "info",
|
|
name: "info",
|
|
|
- components: { Son1 },
|
|
|
|
|
|
|
+ components: { Son1,Son2 },
|
|
|
data() {
|
|
data() {
|
|
|
//这里存放数据
|
|
//这里存放数据
|
|
|
return {
|
|
return {
|
|
|
- leftInd: 0,
|
|
|
|
|
|
|
+ leftInd: "1001",
|
|
|
leftData: [],
|
|
leftData: [],
|
|
|
topDataInd: "1000",
|
|
topDataInd: "1000",
|
|
|
topData: [],
|
|
topData: [],
|
|
|
// 一个内容的高度
|
|
// 一个内容的高度
|
|
|
pageHeight: null,
|
|
pageHeight: null,
|
|
|
- oldScrollTop: 0, //记录上一次滚动结束后的滚动距离
|
|
|
|
|
- scrollTop: 0, // 记录当前的滚动距离
|
|
|
|
|
|
|
+ pageInd: 0,
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
//监听属性 类似于data概念
|
|
//监听属性 类似于data概念
|
|
|
computed: {},
|
|
computed: {},
|
|
|
//监控data中的数据变化
|
|
//监控data中的数据变化
|
|
|
watch: {
|
|
watch: {
|
|
|
- scrollTop(newValue, oldValue) {
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- if (newValue == window.scrollY) {
|
|
|
|
|
- //延时执行后当newValue等于window.scrollY,代表滚动结束
|
|
|
|
|
- // console.log("滚动结束");
|
|
|
|
|
- this.oldScrollTop = newValue; //每次滚动结束后都要给oldScrollTop赋值
|
|
|
|
|
- }
|
|
|
|
|
- }, 20); //必须使用延时器,否则每次newValue和window.scrollY都相等,无法判断,20ms刚好大于watch的侦听周期,故延时20ms
|
|
|
|
|
- if (this.oldScrollTop == oldValue) {
|
|
|
|
|
- //每次滚动开始时oldScrollTop与oldValue相等
|
|
|
|
|
- // console.log("滚动开始");
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- leftInd(val) {
|
|
|
|
|
- window.scrollTo({ top: this.pageHeight * val, behavior: "smooth" });
|
|
|
|
|
|
|
+ pageInd(val) {
|
|
|
|
|
+ let dom = document.querySelector(".conten");
|
|
|
|
|
+ dom.scrollTo({ top: this.pageHeight * val, behavior: "smooth" });
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
|
//方法集合
|
|
//方法集合
|
|
|
methods: {
|
|
methods: {
|
|
|
- handleScroll() {
|
|
|
|
|
- // 监听页面滚动事件
|
|
|
|
|
- window.onscroll = () => {
|
|
|
|
|
- this.scrollTop = window.scrollY;
|
|
|
|
|
- };
|
|
|
|
|
- },
|
|
|
|
|
- pageNext() {
|
|
|
|
|
- console.log(123);
|
|
|
|
|
|
|
+ pageNext(id, index) {
|
|
|
|
|
+ this.cutScroll(id, index);
|
|
|
},
|
|
},
|
|
|
- cutScroll() {
|
|
|
|
|
- if (this.leftInd === this.leftInd.length) return;
|
|
|
|
|
- else {
|
|
|
|
|
- this.leftInd++;
|
|
|
|
|
- // 切换的时候暂时视频
|
|
|
|
|
- this.$nextTick(() => {
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- let dom = document.querySelectorAll("video");
|
|
|
|
|
- dom.forEach((v) => {
|
|
|
|
|
- v.pause();
|
|
|
|
|
- });
|
|
|
|
|
- }, 100);
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ cutScroll(id, index) {
|
|
|
|
|
+ this.leftInd = id;
|
|
|
|
|
+ this.pageInd = index;
|
|
|
|
|
+ // 切换的时候暂时视频
|
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ let dom = document.querySelectorAll("video");
|
|
|
|
|
+ dom.forEach((v) => {
|
|
|
|
|
+ v.pause();
|
|
|
|
|
+ });
|
|
|
|
|
+ }, 100);
|
|
|
|
|
+ });
|
|
|
},
|
|
},
|
|
|
cutInfo(id, val) {
|
|
cutInfo(id, val) {
|
|
|
let dom = document.querySelector(".conten");
|
|
let dom = document.querySelector(".conten");
|
|
|
dom.scrollTo({ top: 0, behavior: "smooth" });
|
|
dom.scrollTo({ top: 0, behavior: "smooth" });
|
|
|
- this.leftInd = 0;
|
|
|
|
|
|
|
+ this.leftInd = val[0].id;
|
|
|
this.topDataInd = id;
|
|
this.topDataInd = id;
|
|
|
this.leftData = val;
|
|
this.leftData = val;
|
|
|
|
|
+ this.pageInd=0
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
|
//生命周期 - 创建完成(可以访问当前this实例)
|
|
//生命周期 - 创建完成(可以访问当前this实例)
|
|
@@ -136,18 +118,15 @@ export default {
|
|
|
mounted() {
|
|
mounted() {
|
|
|
this.$nextTick(() => {
|
|
this.$nextTick(() => {
|
|
|
// 获取一个页面的高度
|
|
// 获取一个页面的高度
|
|
|
- let domH = document.querySelector(".info");
|
|
|
|
|
- this.pageHeight = domH.clientHeight - 100;
|
|
|
|
|
|
|
+ let domH = document.querySelector(".conten .right");
|
|
|
|
|
+ this.pageHeight = domH.clientHeight;
|
|
|
});
|
|
});
|
|
|
- this.handleScroll();
|
|
|
|
|
},
|
|
},
|
|
|
beforeCreate() {}, //生命周期 - 创建之前
|
|
beforeCreate() {}, //生命周期 - 创建之前
|
|
|
beforeMount() {}, //生命周期 - 挂载之前
|
|
beforeMount() {}, //生命周期 - 挂载之前
|
|
|
beforeUpdate() {}, //生命周期 - 更新之前
|
|
beforeUpdate() {}, //生命周期 - 更新之前
|
|
|
updated() {}, //生命周期 - 更新之后
|
|
updated() {}, //生命周期 - 更新之后
|
|
|
- beforeDestroy() {
|
|
|
|
|
- window.onscroll = null;
|
|
|
|
|
- }, //生命周期 - 销毁之前
|
|
|
|
|
|
|
+ beforeDestroy() {}, //生命周期 - 销毁之前
|
|
|
destroyed() {}, //生命周期 - 销毁完成
|
|
destroyed() {}, //生命周期 - 销毁完成
|
|
|
activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
|
|
activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
|
|
|
};
|
|
};
|
|
@@ -161,7 +140,7 @@ export default {
|
|
|
min-width: 1800px;
|
|
min-width: 1800px;
|
|
|
padding: 0 0px 0 120px;
|
|
padding: 0 0px 0 120px;
|
|
|
color: #fff;
|
|
color: #fff;
|
|
|
- position: fixed;
|
|
|
|
|
|
|
+ position: absolute;
|
|
|
top: 0;
|
|
top: 0;
|
|
|
left: 0;
|
|
left: 0;
|
|
|
width: 100%;
|
|
width: 100%;
|
|
@@ -199,10 +178,12 @@ export default {
|
|
|
}
|
|
}
|
|
|
.conten {
|
|
.conten {
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ overflow: hidden;
|
|
|
padding: 100px 140px 0;
|
|
padding: 100px 140px 0;
|
|
|
background: url("../../assets/img/contenBG.png");
|
|
background: url("../../assets/img/contenBG.png");
|
|
|
.left {
|
|
.left {
|
|
|
- position: fixed;
|
|
|
|
|
|
|
+ position: absolute;
|
|
|
top: 100px;
|
|
top: 100px;
|
|
|
left: 140px;
|
|
left: 140px;
|
|
|
padding-top: 50px;
|
|
padding-top: 50px;
|
|
@@ -221,6 +202,7 @@ export default {
|
|
|
flex-direction: column;
|
|
flex-direction: column;
|
|
|
justify-content: space-around;
|
|
justify-content: space-around;
|
|
|
.row {
|
|
.row {
|
|
|
|
|
+ cursor: pointer;
|
|
|
position: relative;
|
|
position: relative;
|
|
|
padding-left: 30px;
|
|
padding-left: 30px;
|
|
|
font-family: "思源宋体";
|
|
font-family: "思源宋体";
|
|
@@ -236,6 +218,7 @@ export default {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
.leAc {
|
|
.leAc {
|
|
|
|
|
+ pointer-events: none;
|
|
|
color: #9f171c;
|
|
color: #9f171c;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|