lsc 3 år sedan
förälder
incheckning
44a88949f2
1 ändrade filer med 148 tillägg och 16 borttagningar
  1. 148 16
      src/components/police.vue

+ 148 - 16
src/components/police.vue

@@ -4,16 +4,16 @@
       <img src="../assets/img/tips.png" alt="" />
     </div>
     <div class="img">
-      <div id="screan" ref="dv" v-drag="(go)">
+      <div id="screan" ref="dv" v-drag="go">
         <img src="../assets/img/screan.png" alt="" />
       </div>
-      <div id="tou" ref="dv1" v-drag="(go)">
+      <div id="tou" ref="dv1" v-drag="go">
         <img src="../assets/img/tou.png" alt="" />
       </div>
-      <div id="ai" ref="dv2" v-drag="(go)">
+      <div id="ai" ref="dv2" v-drag="go">
         <img src="../assets/img/ai.png" alt="" />
       </div>
-      <div id="police" ref="dv2" v-drag="(go)">
+      <div id="police" ref="dv2" v-drag="go">
         <img src="../assets/img/police.png" alt="" />
       </div>
     </div>
@@ -26,13 +26,13 @@
 export default {
   data() {
     return {
-      that:this,
+      that: this,
     };
   },
   directives: {
     drag: {
       // 指令的定义
-      inserted: function (el,binding) {
+      inserted: function (el, binding) {
         // el.drag();
         console.log(el);
         //获取元素
@@ -42,6 +42,10 @@ export default {
         let l = 0;
         let t = 0;
         let isDown = false;
+        var dv = document.getElementById("screan");
+        var dv1 = document.getElementById("tou");
+        var dv2 = document.getElementById("ai");
+        var dv3 = document.getElementById("police");
         //鼠标按下事件
         el.onmousedown = function (e) {
           //获取x坐标和y坐标
@@ -74,6 +78,21 @@ export default {
             cdiv.style.top = nt + "px";
             // cdiv.style.left = e.clientX + "px";
             // cdiv.style.top = e.clientY + "px";
+            if (el.id == "screan") {
+              st(nl, nt, 1);
+            }
+
+            if (el.id == "tou") {
+              st(nl, nt, 2);
+            }
+
+            if (el.id == "ai") {
+              st(nl, nt, 4);
+            }
+
+            if (el.id == "police") {
+              st(nl, nt, 3);
+            }
             pan();
           };
         }
@@ -85,11 +104,6 @@ export default {
           document.onmousemove = null;
         };
         function pan() {
-          var dv = document.getElementById("screan");
-          var dv1 = document.getElementById("tou");
-          var dv2 = document.getElementById("ai");
-          var dv3 = document.getElementById("police");
-
           var _panL = dv.offsetLeft;
           var _panT = dv.offsetTop;
 
@@ -129,7 +143,7 @@ export default {
           ) {
             btn.className = "button dark";
             btn.onclick = function () {
-              binding.value()
+              binding.value();
             };
             right.style.display = "block";
             right.style.left = policeL + 240 + "px";
@@ -140,13 +154,131 @@ export default {
             right.style.display = "none";
           }
         }
-      }
+        function st(nl, nt, type) {
+          var _panL = dv.offsetLeft;
+          var _panT = dv.offsetTop;
+          var touL = dv1.offsetLeft;
+          var touT = dv1.offsetTop;
+
+          var policeL = dv3.offsetLeft;
+          var policeT = dv3.offsetTop;
+
+          var aiL = dv2.offsetLeft;
+          var aiT = dv2.offsetTop;
+
+          var stL = _panL - touL;
+          var stP = _panT - touT;
+
+          var spL = _panL - policeL;
+          var spP = _panT - policeT;
+
+          var saL = _panL - aiL;
+          var saP = _panT - aiT;
+
+          var saL2 = aiL - policeL;
+          var saP2 = aiT - policeT;
+
+          if (25 < saL2 && saL2 < 85 && -95 < saP2 && saP2 < -40 && type == 4) {
+            dv3.style.left = nl - 56 + "px";
+            dv3.style.top = nt + 70 + "px";
+          }
+
+          if (
+            -70 < stL &&
+            stL < -15 &&
+            45 < stP &&
+            stP < 100 &&
+            25 < spL &&
+            spL < 85 &&
+            -95 < spP &&
+            spP < -40 &&
+            -5 <= saL &&
+            saL < 8 &&
+            -5 <= saP &&
+            saP < 8 &&
+            type == 3
+          ) {
+            dv.style.left = nl + 56 + "px";
+            dv.style.top = nt - 70 + "px";
+
+            dv1.style.left = nl + 98 + "px";
+            dv1.style.top = nt - 143 + "px";
+
+            dv2.style.left = nl + 56 + "px";
+            dv2.style.top = nt - 70 + "px";
+          }
+
+          if (
+            -70 < stL &&
+            stL < -15 &&
+            45 < stP &&
+            stP < 100 &&
+            25 < spL &&
+            spL < 85 &&
+            -95 < spP &&
+            spP < -40 &&
+            type == 1
+          ) {
+            dv1.style.left = nl + 42 + "px";
+            dv1.style.top = nt - 73 + "px";
+
+            dv3.style.left = nl - 56 + "px";
+            dv3.style.top = nt + 70 + "px";
+          }
+
+          if (
+            -70 < stL &&
+            stL < -15 &&
+            45 < stP &&
+            stP < 100 &&
+            25 < spL &&
+            spL < 85 &&
+            -95 < spP &&
+            spP < -40 &&
+            type == 2
+          ) {
+            dv.style.left = nl + 42 + "px";
+            dv.style.top = nt - 53 + "px";
+
+            dv3.style.left = nl - 98 + "px";
+            dv3.style.top = nt + 143 + "px";
+          }
+
+          if (
+            -70 < stL &&
+            stL < -15 &&
+            45 < stP &&
+            stP < 100 &&
+            25 < spL &&
+            spL < 85 &&
+            -95 < spP &&
+            spP < -40 &&
+            type == 3
+          ) {
+            dv.style.left = nl + 56 + "px";
+            dv.style.top = nt - 70 + "px";
+
+            dv1.style.left = nl + 98 + "px";
+            dv1.style.top = nt - 143 + "px";
+          }
+
+          if (-70 < stL && stL < -15 && 45 < stP && stP < 100 && type == 1) {
+            dv1.style.left = nl + 42 + "px";
+            dv1.style.top = nt - 73 + "px";
+          }
+
+          if (-70 < stL && stL < -15 && 45 < stP && stP < 100 && type == 2) {
+            dv.style.left = nl - 42 + "px";
+            dv.style.top = nt + 73 + "px";
+          }
+        }
+      },
     },
   },
   methods: {
-    go(){
-      this.$router.push("/blockly")
-    }
+    go() {
+      this.$router.push("/blockly");
+    },
   },
 };
 </script>