Skip to content

Commit e0ecf9e

Browse files
committed
fix(QrcodeStream): dedicated stacking context
Closes #78
1 parent 1b44d5c commit e0ecf9e

File tree

2 files changed

+34
-49
lines changed

2 files changed

+34
-49
lines changed

src/components/QrcodeReader.vue

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,6 @@
44
<template lang="html">
55
<div class="qrcode-reader">
66
<div class="qrcode-reader__inner-wrapper">
7-
<QrcodeDropZone
8-
@detect="onDetect"
9-
class="qrcode-reader__overlay">
10-
<slot></slot>
11-
</QrcodeDropZone>
12-
13-
<canvas
14-
ref="trackingLayer"
15-
class="qrcode-reader__tracking-layer"
16-
></canvas>
17-
18-
<canvas
19-
ref="pauseFrame"
20-
v-show="!shouldScan"
21-
class="qrcode-reader__pause-frame"
22-
></canvas>
23-
247
<video
258
ref="video"
269
v-show="shouldScan"
@@ -29,6 +12,23 @@
2912
muted
3013
playsinline
3114
></video>
15+
16+
<canvas
17+
ref="pauseFrame"
18+
v-show="!shouldScan"
19+
class="qrcode-reader__pause-frame"
20+
></canvas>
21+
22+
<canvas
23+
ref="trackingLayer"
24+
class="qrcode-reader__tracking-layer"
25+
></canvas>
26+
27+
<QrcodeDropZone
28+
@detect="onDetect"
29+
class="qrcode-reader__overlay">
30+
<slot></slot>
31+
</QrcodeDropZone>
3232
</div>
3333
</div>
3434
</template>
@@ -332,6 +332,7 @@ export default {
332332
position: relative;
333333
max-width: 100%;
334334
max-height: 100%;
335+
z-index: 0;
335336
}
336337
337338
.qrcode-reader__overlay,
@@ -350,12 +351,4 @@ export default {
350351
max-width: 100%;
351352
max-height: 100%;
352353
}
353-
354-
.qrcode-reader__overlay {
355-
z-index: 30;
356-
}
357-
358-
.qrcode-reader__tracking-layer {
359-
z-index: 20;
360-
}
361354
</style>

src/components/QrcodeStream.vue

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,6 @@
11
<template lang="html">
22
<div class="qrcode-stream">
33
<div class="qrcode-stream__inner-wrapper">
4-
<div
5-
class="qrcode-stream__overlay">
6-
<slot></slot>
7-
</div>
8-
9-
<canvas
10-
ref="trackingLayer"
11-
class="qrcode-stream__tracking-layer"
12-
></canvas>
13-
14-
<canvas
15-
ref="pauseFrame"
16-
v-show="!shouldScan"
17-
class="qrcode-stream__pause-frame"
18-
></canvas>
19-
204
<video
215
ref="video"
226
v-show="shouldScan"
@@ -25,6 +9,21 @@
259
muted
2610
playsinline
2711
></video>
12+
13+
<canvas
14+
ref="pauseFrame"
15+
v-show="!shouldScan"
16+
class="qrcode-stream__pause-frame"
17+
></canvas>
18+
19+
<canvas
20+
ref="trackingLayer"
21+
class="qrcode-stream__tracking-layer"
22+
></canvas>
23+
24+
<div class="qrcode-stream__overlay">
25+
<slot></slot>
26+
</div>
2827
</div>
2928
</div>
3029
</template>
@@ -309,6 +308,7 @@ export default {
309308
position: relative;
310309
max-width: 100%;
311310
max-height: 100%;
311+
z-index: 0;
312312
}
313313
314314
.qrcode-stream__overlay,
@@ -327,12 +327,4 @@ export default {
327327
max-width: 100%;
328328
max-height: 100%;
329329
}
330-
331-
.qrcode-stream__overlay {
332-
z-index: 30;
333-
}
334-
335-
.qrcode-stream__tracking-layer {
336-
z-index: 20;
337-
}
338330
</style>

0 commit comments

Comments
 (0)