MatteoScript commited on
Commit
1cb4000
·
verified ·
1 Parent(s): e0585a7

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +30 -28
index.html CHANGED
@@ -3,7 +3,7 @@
3
  <head>
4
  <meta charset="UTF-8" />
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
6
- <title>AR Video Simple + Mirino</title>
7
 
8
  <script src="https://aframe.io/releases/1.4.2/aframe.min.js"></script>
9
  <script src="https://cdn.jsdelivr.net/npm/mind-ar@1.2.2/dist/mindar-image.prod.js"></script>
@@ -13,41 +13,44 @@
13
  body { margin: 0; overflow: hidden; background-color: black; }
14
  #vid { position: absolute; top: 0; left: 0; opacity: 0; z-index: -1; pointer-events: none; }
15
 
16
- /* --- STILE DEL MIRINO --- */
17
 
18
- /* Il contenitore principale del mirino, centrato */
19
  #viewfinder-container {
20
  position: fixed;
21
  top: 50%;
22
  left: 50%;
23
  transform: translate(-50%, -50%);
24
- width: 70vw; /* Larghezza relativa allo schermo */
25
- height: 70vw; /* Altezza uguale per farlo quadrato */
26
- max-width: 300px; /* Dimensione massima su schermi grandi */
27
- max-height: 300px;
28
- z-index: 10; /* Sta sopra il video della camera */
29
- pointer-events: none; /* IMPORTANTE: lascia passare i click sotto (per l'audio) */
 
 
 
 
 
 
 
30
  }
31
 
32
  /* Stile comune per i 4 angoli */
33
  .corner {
34
  position: absolute;
35
- width: 40px; /* Lunghezza delle linee */
36
  height: 40px;
37
- border-color: rgba(255, 255, 255, 0.7); /* Colore bianco semi-trasparente */
38
  border-style: solid;
39
- border-width: 0; /* Di base nessun bordo, li aggiungiamo specificamente sotto */
 
40
  }
41
 
42
- /* Posizionamento e bordi specifici per ogni angolo */
43
- /* Top-Left */
44
- .corner-tl { top: 0; left: 0; border-top-width: 3px; border-left-width: 3px; }
45
- /* Top-Right */
46
- .corner-tr { top: 0; right: 0; border-top-width: 3px; border-right-width: 3px; }
47
- /* Bottom-Left */
48
- .corner-bl { bottom: 0; left: 0; border-bottom-width: 3px; border-left-width: 3px; }
49
- /* Bottom-Right */
50
- .corner-br { bottom: 0; right: 0; border-bottom-width: 3px; border-right-width: 3px; }
51
 
52
  </style>
53
  </head>
@@ -60,7 +63,6 @@
60
  <div class="corner corner-br"></div>
61
  </div>
62
 
63
-
64
  <a-scene
65
  mindar-image="imageTargetSrc: targets.mind; filterMinCF:0.0001; filterBeta: 0.01; uiLoading: no; uiScanning: no;"
66
  color-space="sRGB"
@@ -76,7 +78,7 @@
76
 
77
  <a-entity id="example-target" mindar-image-target="targetIndex: 0">
78
  <a-entity id="ar-video-plane"
79
- geometry="primitive: plane; width: 1; height: 1.4"
80
  material="src: #vid; shader: flat; transparent: true; opacity: 1"
81
  position="0 0 0">
82
  </a-entity>
@@ -87,20 +89,20 @@
87
  const video = document.querySelector("#vid");
88
  const target = document.querySelector("#example-target");
89
  // Opzionale: riferimento al mirino se volessi nasconderlo quando trova il target
90
- // const viewfinder = document.querySelector("#viewfinder-container");
91
 
92
  target.addEventListener("targetFound", () => {
93
  console.log("Target trovato: Play video");
94
  video.play();
95
- // Opzionale: nascondi il mirino quando trova il target
96
- // viewfinder.style.opacity = 0;
97
  });
98
 
99
  target.addEventListener("targetLost", () => {
100
  console.log("Target perso: Pause video");
101
  video.pause();
102
- // Opzionale: mostra di nuovo il mirino
103
- // viewfinder.style.opacity = 1;
104
  });
105
 
106
  document.body.addEventListener('click', () => {
 
3
  <head>
4
  <meta charset="UTF-8" />
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
6
+ <title>AR Video 9:16 + Mirino Verticale</title>
7
 
8
  <script src="https://aframe.io/releases/1.4.2/aframe.min.js"></script>
9
  <script src="https://cdn.jsdelivr.net/npm/mind-ar@1.2.2/dist/mindar-image.prod.js"></script>
 
13
  body { margin: 0; overflow: hidden; background-color: black; }
14
  #vid { position: absolute; top: 0; left: 0; opacity: 0; z-index: -1; pointer-events: none; }
15
 
16
+ /* --- STILE DEL MIRINO (Aggiornato per 9:16) --- */
17
 
 
18
  #viewfinder-container {
19
  position: fixed;
20
  top: 50%;
21
  left: 50%;
22
  transform: translate(-50%, -50%);
23
+
24
+ /* Larghezza relativa */
25
+ width: 50vw;
26
+ /* Altezza calcolata per mantenere il rapporto ~9:16 rispetto alla larghezza */
27
+ height: 89vw;
28
+
29
+ /* Limiti massimi in pixel per schermi grandi (desktop/tablet) */
30
+ /* Se la larghezza max è 270px, l'altezza sarà circa 480px (270 * 1.77) */
31
+ max-width: 270px;
32
+ max-height: 480px;
33
+
34
+ z-index: 10;
35
+ pointer-events: none; /* Lascia passare i click */
36
  }
37
 
38
  /* Stile comune per i 4 angoli */
39
  .corner {
40
  position: absolute;
41
+ width: 40px;
42
  height: 40px;
43
+ border-color: rgba(255, 255, 255, 0.8);
44
  border-style: solid;
45
+ border-width: 0;
46
+ box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Aggiunta ombra per visibilità su sfondi chiari */
47
  }
48
 
49
+ /* Posizionamento angoli */
50
+ .corner-tl { top: 0; left: 0; border-top-width: 4px; border-left-width: 4px; }
51
+ .corner-tr { top: 0; right: 0; border-top-width: 4px; border-right-width: 4px; }
52
+ .corner-bl { bottom: 0; left: 0; border-bottom-width: 4px; border-left-width: 4px; }
53
+ .corner-br { bottom: 0; right: 0; border-bottom-width: 4px; border-right-width: 4px; }
 
 
 
 
54
 
55
  </style>
56
  </head>
 
63
  <div class="corner corner-br"></div>
64
  </div>
65
 
 
66
  <a-scene
67
  mindar-image="imageTargetSrc: targets.mind; filterMinCF:0.0001; filterBeta: 0.01; uiLoading: no; uiScanning: no;"
68
  color-space="sRGB"
 
78
 
79
  <a-entity id="example-target" mindar-image-target="targetIndex: 0">
80
  <a-entity id="ar-video-plane"
81
+ geometry="primitive: plane; width: 1; height: 1.78"
82
  material="src: #vid; shader: flat; transparent: true; opacity: 1"
83
  position="0 0 0">
84
  </a-entity>
 
89
  const video = document.querySelector("#vid");
90
  const target = document.querySelector("#example-target");
91
  // Opzionale: riferimento al mirino se volessi nasconderlo quando trova il target
92
+ const viewfinder = document.querySelector("#viewfinder-container");
93
 
94
  target.addEventListener("targetFound", () => {
95
  console.log("Target trovato: Play video");
96
  video.play();
97
+ // Effetto visivo: il mirino diventa più trasparente quando trova il target
98
+ viewfinder.style.opacity = 0.2;
99
  });
100
 
101
  target.addEventListener("targetLost", () => {
102
  console.log("Target perso: Pause video");
103
  video.pause();
104
+ // Il mirino torna ben visibile
105
+ viewfinder.style.opacity = 1;
106
  });
107
 
108
  document.body.addEventListener('click', () => {