mirror of
https://github.com/Alvin-Zilverstand/Spik-en-span.git
synced 2026-03-06 13:26:49 +01:00
Enhance QR code generation and scanner UI: increase QR code size, improve scanner layout, and add video element styling
This commit is contained in:
11
qr/qr.html
11
qr/qr.html
@@ -9,13 +9,14 @@
|
||||
<script src="https://rawgit.com/sitepoint-editors/jsqrcode/master/src/qr_packed.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container mt-5">
|
||||
<h1 class="text-center">QR Scanner Page</h1>
|
||||
<div class="container mt-5 text-center">
|
||||
<h1 class="text-center">QR Scanner</h1>
|
||||
<a id="btn-scan-qr">
|
||||
<img src="https://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2017/07/1499401426qr_icon.svg">
|
||||
<img src="https://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2017/07/1499401426qr_icon.svg" alt="QR Icon">
|
||||
</a>
|
||||
<canvas hidden="" id="qr-canvas"></canvas>
|
||||
<div id="qr-result" hidden="">
|
||||
<video id="video" hidden autoplay playsinline></video>
|
||||
<canvas hidden id="qr-canvas"></canvas>
|
||||
<div id="qr-result" hidden>
|
||||
<b>Data:</b> <span id="outputData"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -2,15 +2,17 @@ const btnScanQR = document.getElementById('btn-scan-qr');
|
||||
const qrCanvas = document.getElementById('qr-canvas');
|
||||
const qrResult = document.getElementById('qr-result');
|
||||
const outputData = document.getElementById('outputData');
|
||||
const video = document.getElementById('video');
|
||||
|
||||
btnScanQR.addEventListener('click', () => {
|
||||
btnScanQR.hidden = true; // Hide the QR code icon
|
||||
video.hidden = false; // Show the video element
|
||||
qrCanvas.hidden = false;
|
||||
qrResult.hidden = true;
|
||||
|
||||
const context = qrCanvas.getContext('2d');
|
||||
navigator.mediaDevices.getUserMedia({ video: { facingMode: 'environment' } })
|
||||
.then((stream) => {
|
||||
const video = document.createElement('video');
|
||||
video.srcObject = stream;
|
||||
video.setAttribute('playsinline', true); // Required to work on iOS
|
||||
video.play();
|
||||
@@ -26,6 +28,7 @@ btnScanQR.addEventListener('click', () => {
|
||||
outputData.innerText = qrCodeData;
|
||||
qrResult.hidden = false;
|
||||
qrCanvas.hidden = true;
|
||||
video.hidden = true; // Hide the video element after scanning
|
||||
stream.getTracks().forEach(track => track.stop());
|
||||
} catch (e) {
|
||||
requestAnimationFrame(scan);
|
||||
|
||||
@@ -50,3 +50,13 @@ html {
|
||||
max-width: 700px;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
#video {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
width: 100%;
|
||||
max-width: 400px;
|
||||
border: 2px solid white;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user