|
@@ -1,38 +1,20 @@
|
|
|
import React, { useEffect, useMemo, useRef, useState } from "react";
|
|
|
import styles from "./index.module.scss";
|
|
|
-import maoBacImg from "@/assets/img/map/mapBac.jpg";
|
|
|
import classNames from "classnames";
|
|
|
-import { envUrl } from "@/utils/history";
|
|
|
-
|
|
|
-function A0Map() {
|
|
|
- const mapBac1 = useRef<HTMLDivElement>(null);
|
|
|
-
|
|
|
- // const mouseMoveFu = useCallback((e: MouseEvent) => {
|
|
|
- // let x = (e.clientX / window.innerWidth) * 2 - 1;
|
|
|
- // let y = -(e.clientY / window.innerHeight) * 2 + 1;
|
|
|
-
|
|
|
- // // x = x > 1 ? 1 : x < -1 ? -1 : x;
|
|
|
- // // y = y > 1 ? 1 : y < -1 ? -1 : y;
|
|
|
-
|
|
|
- // const moveParam = `rotateX(${y * 2.5}deg) rotateY(${x}deg) translate(${
|
|
|
- // -x * 10
|
|
|
- // }px,${y * 10}px)`;
|
|
|
-
|
|
|
- // if (mapBac1.current) mapBac1.current.style.transform = moveParam;
|
|
|
- // }, []);
|
|
|
-
|
|
|
+import { envUrl } from "@/utils/env";
|
|
|
+import { maoData2, mapData1 } from "./data";
|
|
|
+import iconImg1 from "@/assets/img/map/icon1.png";
|
|
|
+import iconImg1Ac from "@/assets/img/map/icon1Ac.png";
|
|
|
+import iconImg2 from "@/assets/img/map/icon2.png";
|
|
|
+import iconImg2Ac from "@/assets/img/map/icon2Ac.png";
|
|
|
+
|
|
|
+type Props = {
|
|
|
+ type: number;
|
|
|
+};
|
|
|
+
|
|
|
+function A0Map({ type }: Props) {
|
|
|
const [videoInd, setVidoeInd] = useState(true);
|
|
|
|
|
|
- // useEffect(() => {
|
|
|
- // if (mapBac1.current) {
|
|
|
- // const dom1 = mapBac1.current;
|
|
|
- // dom1.addEventListener("mousemove", mouseMoveFu);
|
|
|
- // return () => {
|
|
|
- // dom1.removeEventListener("mousemove", mouseMoveFu);
|
|
|
- // };
|
|
|
- // }
|
|
|
- // }, [mouseMoveFu]);
|
|
|
-
|
|
|
const [moveInd, setMoveInd] = useState(0);
|
|
|
|
|
|
// 30个动画帧div
|
|
@@ -75,11 +57,6 @@ function A0Map() {
|
|
|
|
|
|
return (
|
|
|
<div className={styles.A0Map}>
|
|
|
- {/* 测试开场动画帧 */}
|
|
|
- {/* <div className="moveCCC" onClick={() => setVidoeInd(true)}>
|
|
|
- 开始
|
|
|
- </div> */}
|
|
|
-
|
|
|
{/* 开场动画帧 */}
|
|
|
<div
|
|
|
className={classNames("videoBoxMove", !videoInd ? "videoBoxHide" : "")}
|
|
@@ -88,9 +65,82 @@ function A0Map() {
|
|
|
</div>
|
|
|
|
|
|
{/* 一级地图 */}
|
|
|
- <div className="mapMain">
|
|
|
- <div className="mapBac" ref={mapBac1}>
|
|
|
- <img src={maoBacImg} alt="" />
|
|
|
+ <div
|
|
|
+ className={classNames(
|
|
|
+ "mapMain",
|
|
|
+ type === 2 ? "mapMain2" : type === 3 ? "mapMain3" : ""
|
|
|
+ )}
|
|
|
+ >
|
|
|
+ {/* 定位大图标 */}
|
|
|
+ {mapData1.map((v) => (
|
|
|
+ <div
|
|
|
+ key={v.id}
|
|
|
+ className="A0iconBox"
|
|
|
+ style={{ top: v.y, left: v.x, zIndex: v.ind }}
|
|
|
+ >
|
|
|
+ <div className="iconNum">{v.id}</div>
|
|
|
+
|
|
|
+ <img className="iconImg1" src={iconImg1} alt="" />
|
|
|
+ <img className="iconImg2" src={iconImg1Ac} alt="" />
|
|
|
+
|
|
|
+ {/* 文字标题 */}
|
|
|
+ <div className="txtBox">
|
|
|
+ <div>{v.name}</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ {/* 悬停出来的图片和名称 */}
|
|
|
+ <div className="hoverShowBox">
|
|
|
+ <div className="hoverShowBoxM">
|
|
|
+ <div className="hoverShowBox1">{v.name}</div>
|
|
|
+ <div className="hoverShowBox2">
|
|
|
+ <img src={`${envUrl}/map/icon/${v.id}.jpg`} alt="" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ ))}
|
|
|
+
|
|
|
+ {/* 定位小图标 */}
|
|
|
+ {maoData2.map((v) => (
|
|
|
+ <div
|
|
|
+ key={v.id}
|
|
|
+ className={classNames(
|
|
|
+ "A0iconSmBox",
|
|
|
+ v.type === "right" ? "A0iconSmBoxR" : ""
|
|
|
+ )}
|
|
|
+ style={{
|
|
|
+ top: v.y,
|
|
|
+ left: v.x,
|
|
|
+ bottom: v.b,
|
|
|
+ right: v.r,
|
|
|
+ zIndex: v.ind,
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <img className="ic2Img1" src={iconImg2} alt="" />
|
|
|
+ <img className="ic2Img2" src={iconImg2Ac} alt="" />
|
|
|
+
|
|
|
+ {/* 文字标题 */}
|
|
|
+ <div className={classNames("ic2txtBox", `ic2txtBox${v.id}`)}>
|
|
|
+ {v.name}
|
|
|
+ </div>
|
|
|
+
|
|
|
+ {/* 悬停出来的图片和名称 */}
|
|
|
+ <div
|
|
|
+ className={classNames(
|
|
|
+ "ic2HoverBox",
|
|
|
+ v.type === "right" ? "ic2HoverBox2" : ""
|
|
|
+ )}
|
|
|
+ >
|
|
|
+ <div className="ic2HoverBoxll">{v.name}</div>
|
|
|
+ <div className="ic2HoverBoxrr">
|
|
|
+ <img src={`${envUrl}/map/icon/${v.id}.jpg`} alt="" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ ))}
|
|
|
+
|
|
|
+ <div className="mapBac">
|
|
|
+ <img src={`${envUrl}/map/1.jpg`} alt="" />
|
|
|
</div>
|
|
|
</div>
|
|
|
<div className="yunBox">
|