基于JS实现二维码名片生成的示例代码

yizhihongxing

基于JS实现二维码名片生成的示例代码

简介

本文将介绍如何使用JavaScript编写代码来生成二维码名片。这样的应用程序可以方便地将个人或商业信息分享给其他人。一些示例将帮助您更好地理解如何使用JavaScript来生成二维码名片。

准备工作

在开始编写JavaScript代码之前,您需要在网页中引入QRCode.js库。通过在HTML文件中引入QRCode.js库,您可以轻松编写代码来生成二维码名片。

<!DOCTYPE html>
<html>
  <head>
    <title>二维码名片生成器</title>
  </head>
  <body>
    <h1>二维码名片生成器</h1>
    <input type="text" id="qrtext" placeholder="请输入您的名片信息">
    <button onclick="generateQR()">生成二维码</button>
    <div id="qrcode"></div>

    <script src="https://cdn.bootcdn.net/ajax/libs/qrcodejs/1.0.0/qrcode.min.js"></script>
    <script src="app.js"></script>
  </body>
</html>

在上面的代码中,我们引入了QRCode.js库。以下是我们代码中的核心JavaScript代码。

function generateQR() {
  const qrtext = document.getElementById('qrtext').value.trim();
  if (!qrtext) {
    alert('请输入有效信息');
    return;
  }
  var qrcode = new QRCode(document.getElementById("qrcode"), {
    text: qrtext,
    width: 200,
    height: 200,
    colorDark : "#000000",
    colorLight : "#ffffff",
    correctLevel : QRCode.CorrectLevel.H
  });
}

看一下最上面的代码,我们为页面添加了一个输入框和一个生成二维码的按钮。然后,我们在页面中添加了一个div元素,它是用于将生成的二维码显示出来的。

在JavaScript函数generateQR()中,我们首先获取了用户输入的信息,并对其进行了一些值检查。接着,我们创建了一个QRCode对象,并传递了必要的参数。最后,我们将二维码显示到页面上。

示例说明

让我们看下面两个示例:

示例1: 生成文本二维码名片

以下是一个示例,它演示了如何为纯文本信息创建二维码名片。

<!DOCTYPE html>
<html>
  <head>
    <title>文本二维码名片生成器</title>
  </head>
  <body>
    <h1>文本二维码名片生成器</h1>
    <input type="text" id="qrtext" placeholder="请输入您的名片信息">
    <button onclick="generateQR()">生成二维码</button>
    <div id="qrcode"></div>

    <script src="https://cdn.bootcdn.net/ajax/libs/qrcodejs/1.0.0/qrcode.min.js"></script>
    <script>
      function generateQR() {
        const qrtext = document.getElementById('qrtext').value.trim();
        if (!qrtext) {
          alert('请输入有效信息');
          return;
        }
        var qrcode = new QRCode(document.getElementById("qrcode"), {
          text: qrtext,
          width: 200,
          height: 200,
          colorDark : "#000000",
          colorLight : "#ffffff",
          correctLevel : QRCode.CorrectLevel.H
        });
      }
    </script>
  </body>
</html>

在这个示例中,我们有一个页面,用户可以在该页面中输入他们的名片信息。当他们单击“生成二维码”按钮时,JavaScript将创建一个QRCode对象,并将其作为二维码显示。

示例2: 生成带有Logo的二维码名片

以下示例演示了如何添加带有公司文本和Logo的二维码名片。

<!DOCTYPE html>
<html>
  <head>
    <title>带有Logo的二维码名片生成器</title>
  </head>
  <body>
    <h1>带有Logo的二维码名片生成器</h1>
    <input type="text" id="qrtext" placeholder="请输入您的名片信息">
    <input type="file" id="logoImage" accept="image/*" onchange="loadFile(event)">
    <button onclick="generateQR()">生成二维码</button>
    <div id="qrcode"></div>

    <script src="https://cdn.bootcdn.net/ajax/libs/qrcodejs/1.0.0/qrcode.min.js"></script>
    <script>
      let imgData;

      function generateQR() {
        const qrtext = document.getElementById('qrtext').value.trim();
        if (!qrtext) {
          alert('请输入有效信息');
          return;
        }
        var canvas = document.createElement("canvas");

        QRCode.toCanvas(canvas, qrtext, {
          width: 200,
          height: 200,
          colorDark : "#000000",
          colorLight : "#ffffff",
          correctLevel : QRCode.CorrectLevel.H
        }, function(error) {
          if (error) console.error(error);
          let ctx = canvas.getContext('2d');
          if (imgData) {
            const img = new Image();
            img.src = imgData;
            img.onload = function () {
              const imgWidth = 40,
                    imgHeight = 40;
              let x = (canvas.width - imgWidth) / 2,
                  y = (canvas.height - imgHeight) / 2;

              ctx.drawImage(this, x, y, imgWidth, imgHeight);
              document.getElementById("qrcode").innerHTML = "<img src='"+canvas.toDataURL()+"'>";
            };
          } else {
            document.getElementById("qrcode").innerHTML = "<img src='"+canvas.toDataURL()+"'>";
          }       
        });
      }

      function loadFile(event) {
        const reader = new FileReader();
        reader.onload = function() {
          imgData = reader.result;
        }
        reader.readAsDataURL(event.target.files[0]);
      }
    </script>
  </body>
</html>

在这个示例中,我们提供了一个上传文件的区域,允许用户上传公司Logo。我们在JavaScript代码中添加了一个新的函数loadFile(),用于检索选定的图像文件的数据URL。当用户单击“生成QR码”按钮时,JavaScript使用QRCode.js库创建Canvas,并在该Canvas中创建QR码。如果用户已经上传了Logo,则将Logo添加到Canvas中。最后,我们将Canvas转换为图像,并将其显示在HTML div元素中,以便将其展示给用户。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于JS实现二维码名片生成的示例代码 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • CSS网页实例 利用box-sizing实现div仿框架结构实现代码

    下面我会提供一个详细的攻略来讲解“CSS网页实例 利用box-sizing实现div仿框架结构实现代码”。首先,我们需要了解box-sizing的概念。 box-sizing是CSS3中的一个属性,用于指定盒子的尺寸计算模式,默认值为content-box。在content-box模式下,盒子的宽度和高度只包括内容的尺寸,而不包括边框和内边距的尺寸。而在bo…

    css 2023年6月10日
    00
  • Web标准建构的站点一览表

    让我来给你讲解一下“Web标准建构的站点一览表”的完整攻略。 一、什么是Web标准建构的站点一览表 Web标准建构的站点一览表是一个收集各种实例网站的网站列表,该列表仅收录那些完全符合Web标准并建构优良的网站。这个列表帮助网站设计师创建更好的网站,提高网站的可访问性、可维护性和可扩展性。Web标准建构的站点一览表帮助人们了解如何应用标准技术来创建可访问的、…

    css 2023年6月10日
    00
  • 详解CSS盒子塌陷的5种解决方法

    详解CSS盒子塌陷的5种解决方法 在CSS布局过程中,经常会遇到盒子塌陷的问题。盒子塌陷是指由于子元素的高度和父级元素的高度不同,导致父级元素高度无法撑起子元素的情况。 盒子塌陷的原因 盒子塌陷的原因主要有两种: 浮动元素未清除浮动,导致父级元素不包含浮动元素。 父级元素设置了固定高度或最小高度,导致高度无法自适应。 解决方法 方法一:清除浮动 清除浮动可通…

    css 2023年6月10日
    00
  • 基于jquery的不规则矩形的排列实现代码

    下面是关于“基于jquery的不规则矩形的排列实现代码”的完整攻略: 1. 前期准备 在开始编写代码之前,我们需要先确定代码所需的资源和环境。具体步骤如下: 确定用于排版的元素样式和尺寸,例如宽度、高度、背景颜色等等。 引入jQuery库,确保代码能够正常执行。 在页面中添加用于显示排版的容器,例如一个<div>标签。 2. 实现思路 在前期准备…

    css 2023年6月10日
    00
  • 目前比较全面的浏览器CSS BUG兼容汇总

    针对“目前比较全面的浏览器CSS BUG兼容汇总”的攻略,从以下四个方面进行详细讲解: 如何寻找CSS兼容性问题 当我们在编写CSS样式时,不可避免地会遇到一些浏览器兼容性问题,主要表现为某些属性在不同浏览器下的展示效果会不一样。我们可以通过以下几种方式快速定位CSS兼容性问题: 使用浏览器的开发者工具调试,观察不同浏览器下的属性表现是否一致; 在网上搜索相…

    css 2023年6月9日
    00
  • 高效的表格行背景隔行变色及选定高亮的JS代码

    下面是关于“高效的表格行背景隔行变色及选定高亮的JS代码”的攻略。 一、背景知识 在前端页面制作过程中,常常需要对表格中的数据进行特殊的处理以便更好的呈现给用户。其中对表格进行隔行变色和选定行高亮处理是一种常见的需求。 1. 隔行变色 表格中的隔行变色是一种用于增强视觉效果的技巧,让用户能够更加清晰地看到数据之间的差异性。通常情况下,我们会使用CSS来为表格…

    css 2023年6月9日
    00
  • 纯CSS(无JS)实现的二级弹出菜单效果代码

    首先我们需要了解什么是纯CSS实现的二级弹出菜单效果。 二级弹出菜单效果是指,当鼠标指向一级菜单时,二级菜单会在该一级菜单的下方水平展开。通常,这种效果需要JS的支持。但是有些开发者可能不想使用JS,只希望使用CSS来实现。那么这个要怎么做呢? 其实,实现纯CSS的二级弹出菜单效果,并不是一件困难的事情。可以使用CSS的:hover伪类和CSS选择器来实现这…

    css 2023年6月10日
    00
  • 谈一谈bootstrap响应式布局

    Bootstrap是一种流行的CSS框架,具有响应式设计,可以自适应于各种设备。以下是一些关于如何使用Bootstrap进行响应式布局的指南: 什么是响应式布局? 响应式布局是一种能够自适应各种不同的设备和屏幕尺寸的网站布局。传统布局方式是在开发网站时针对特定设备进行设计和开发,但响应式布局能够适应不同的屏幕大小和方向,并且可以为多种设备提供一致的用户体验。…

    css 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部