|
@@ -1,6 +1,6 @@
|
|
|
<template>
|
|
|
- <div class="section section3" >
|
|
|
- <canvas id="canvas" v-show="isShowCanvas"></canvas>
|
|
|
+ <div class="section section3">
|
|
|
+ <canvas class="canvas" id="canvas-section-3" v-show="isShowCanvas"></canvas>
|
|
|
<process-bar :process="process" />
|
|
|
<div
|
|
|
class="can-scroll scroll-bar-3"
|
|
@@ -51,84 +51,31 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import { onMounted, onUnmounted, ref } from "vue";
|
|
|
+import { onMounted, onUnmounted, ref, unref } from "vue";
|
|
|
import processBar from "../components/processBar.vue";
|
|
|
import { emitter } from "../emitter.js";
|
|
|
-import { CanvasPlayer } from "../utils/canvasPlayer.js";
|
|
|
+import { usePlayer } from "../hooks/usecanvasPlayer.js";
|
|
|
import { isMobile } from "../utils/isMoblie";
|
|
|
-const setting = [
|
|
|
- {
|
|
|
- name: "人鸟兽",
|
|
|
- sectionType: 3,
|
|
|
- className: ["canvas", ".scroll-container", ".section3 .fp-scrollable"],
|
|
|
- canvas: null,
|
|
|
- context: null,
|
|
|
- imageUrl: isMobile() ? "./img/canvas/pc1_mo" : "./img/canvas/pc1",
|
|
|
- dots: [],
|
|
|
- // total: isMobile() ? 900 : 300,
|
|
|
- total: isMobile() ? 900 : 331,
|
|
|
- },
|
|
|
- // {
|
|
|
- // name: "金蝉玉叶",
|
|
|
- // sectionType: 54,
|
|
|
- // className: ["canvas1", ".scroll-container1", ".jinchanyuye .fp-scrollable"],
|
|
|
- // canvas: null,
|
|
|
- // context: null,
|
|
|
- // imageUrl: "./img/canvas/jcyy",
|
|
|
- // dots: [],
|
|
|
- // total: 288,
|
|
|
- // CA: [
|
|
|
- // {
|
|
|
- // name: "#videocont2-1",
|
|
|
- // start: 74,
|
|
|
- // end: 116,
|
|
|
- // },
|
|
|
- // {
|
|
|
- // name: "#videocont2-map",
|
|
|
- // start: 74,
|
|
|
- // end: 116,
|
|
|
- // },
|
|
|
- // {
|
|
|
- // name: "#videocont2-2",
|
|
|
- // start: 84,
|
|
|
- // end: 116,
|
|
|
- // },
|
|
|
- // {
|
|
|
- // name: "#videocont2-3",
|
|
|
- // start: 84,
|
|
|
- // end: 116,
|
|
|
- // },
|
|
|
- // {
|
|
|
- // name: "#videocont2-4",
|
|
|
- // start: 120,
|
|
|
- // end: 181,
|
|
|
- // },
|
|
|
- // {
|
|
|
- // name: "#videocont2-5",
|
|
|
- // start: 194,
|
|
|
- // end: 242,
|
|
|
- // },
|
|
|
- // ],
|
|
|
- // },
|
|
|
-];
|
|
|
|
|
|
const props = defineProps({
|
|
|
fullpage: Object,
|
|
|
});
|
|
|
|
|
|
-const player = new CanvasPlayer("canvas", setting);
|
|
|
-
|
|
|
+// const player = new CanvasPlayer("canvas", setting);
|
|
|
+// const player = useCanvasPlayer("canvas", setting);
|
|
|
+// console.log("player", player);
|
|
|
const isShowCanvas = ref(false);
|
|
|
|
|
|
const handler = ({ index: currentIndex, nextIndex }) => {
|
|
|
const { index } = nextIndex;
|
|
|
const { index: pre } = currentIndex;
|
|
|
+ const player = usePlayer();
|
|
|
if (index === 2) {
|
|
|
// console.log("currentIndex", currentIndex);
|
|
|
props.fullpage.api.setAllowScrolling(false);
|
|
|
player.enableScroll(3);
|
|
|
-
|
|
|
if (pre === 1) {
|
|
|
+ console.log("autoplay");
|
|
|
player.autoPlay(0, 60);
|
|
|
}
|
|
|
|
|
@@ -145,41 +92,37 @@ onMounted(() => {
|
|
|
if (isMobile()) {
|
|
|
var vcon = new window.VConsole();
|
|
|
}
|
|
|
-
|
|
|
emitter.on("onLeave", handler);
|
|
|
- player.init();
|
|
|
- player.on("loaded", () => {
|
|
|
- console.log("所有图片完成");
|
|
|
- });
|
|
|
- player.on("loadPress", (p) => {
|
|
|
- // console.log(`加载`, p);
|
|
|
- emitter.emit("updatePress", p);
|
|
|
- });
|
|
|
- player.on("process", (p) => {
|
|
|
- // console.log("process", p);
|
|
|
- process.value = p.process;
|
|
|
- });
|
|
|
- let timer;
|
|
|
- player.on("scroll-prev", () => {
|
|
|
- console.warn("scroll-prev");
|
|
|
- if (timer) clearTimeout(timer);
|
|
|
- timer = setTimeout(() => {
|
|
|
+
|
|
|
+ emitter.on("loaded", () => {
|
|
|
+ const player = usePlayer();
|
|
|
+ player.on("process", (p) => {
|
|
|
+ process.value = p.process;
|
|
|
+ });
|
|
|
+ player.on("scroll-prev", () => {
|
|
|
+ console.warn("scroll-prev");
|
|
|
props.fullpage.api.moveSectionUp();
|
|
|
- }, 600);
|
|
|
- });
|
|
|
- player.on("scroll-next", () => {
|
|
|
- console.warn("scroll-next");
|
|
|
- if (timer) clearTimeout(timer);
|
|
|
- timer = setTimeout(() => {
|
|
|
+ });
|
|
|
+ player.on("scroll-next", () => {
|
|
|
+ console.warn("scroll-next");
|
|
|
props.fullpage.api.moveSectionDown();
|
|
|
- }, 600);
|
|
|
+ });
|
|
|
});
|
|
|
- window.player = player;
|
|
|
+
|
|
|
+ // player.on("loaded", () => {
|
|
|
+ // console.log("所有图片完成");
|
|
|
+ // });
|
|
|
+ // player.on("loadPress", (p) => {
|
|
|
+ // // console.log(`加载`, p);
|
|
|
+ // emitter.emit("updatePress", p);
|
|
|
+ // });
|
|
|
});
|
|
|
onUnmounted(() => {
|
|
|
emitter.off("onLeave", handler);
|
|
|
});
|
|
|
const onPlayerScroll = (event, type) => {
|
|
|
+ // console.log("onPlayerScroll");
|
|
|
+ const player = usePlayer();
|
|
|
player.manualScroll(event, type);
|
|
|
};
|
|
|
</script>
|
|
@@ -187,7 +130,7 @@ const onPlayerScroll = (event, type) => {
|
|
|
<style lang="scss" scoped>
|
|
|
@import "/src/assets/style/index.scss";
|
|
|
|
|
|
-#canvas {
|
|
|
+.canvas {
|
|
|
position: absolute;
|
|
|
top: 0;
|
|
|
z-index: 0;
|