【问题标题】:How to resize QR code?如何调整二维码的大小?
【发布时间】:2015-05-14 03:16:00
【问题描述】:

我当前的 HTML 代码:

<input id="text" type="text"/>
<div id="qrcode"></div>

我的旧 JAVASCRIPT 代码:

var qrcode = new QRCode("qrcode");

$("#text").on("keyup", function () {
qrcode.makeCode($(this).val());
}).keyup().focus();

$("#qrcode").kendoQRCode({
  value: "#test"
});

$("#qrcode")
   .css({ width: "100px", height: "100px" })
   .data("kendoQRCode").resize();

我当前的 JAVASCRIPT 代码:

var qrcode = new QRCode("qrcode");

$("#qrcode").kendoQRCode({
  $("#text").on("keyup", function () {
qrcode.makeCode($(this).val());
}).keyup().focus();
});

$("#qrcode")
   .css({ width: "100px", height: "100px" })
   .data("kendoQRCode").resize();

我正在使用 JQuery UI 1.9.2、qrcode.min.js 和 kendo.all.min.js

对于我的 OLD JAVASCRIPT,它会打印出 2 个不同的 qrcode。 对于我当前的 JAVASCRIPT,它不会打印出任何内容。 我尝试过使用 css 调整大小的不同方法,但效果不佳。 如何解决?有什么想法吗?

【问题讨论】:

    标签: javascript jquery css kendo-ui qr-code


    【解决方案1】:

    根据Kendo UI QRCode documentation,设置二维码的大小,需要使用参数size,单位为像素。像这样:

    $("#qrcode").kendoQRCode({
        value: "#test",
        size: 300
    });
    

    这将生成一个大小为 300 x 300 像素的二维码。

    根据documentation for qrcode.js,要设置生成的二维码的大小,您可以使用widthheight这样的参数:

    var qrcode = new QRCode("qrcode");
    
    var qrcode = new QRCode("test", {
        text: "http://jindo.dev.naver.com/collie",
        width: 400,
        height: 400,
        colorDark : "#000000",
        colorLight : "#ffffff",
        correctLevel : QRCode.CorrectLevel.H
    });
    

    在这种情况下,二维码将为 400 x 400 像素。


    至于问题的第二部分,为什么之前你有 2 个二维码,现在你什么都没有,那是因为在你创建两个之前:

    // One QR Code here using qrcode.js
    $("#text").on("keyup", function () {
    qrcode.makeCode($(this).val());
    }).keyup().focus();
    
    // Another QR code here using Kendo UI QRCode
    $("#qrcode").kendoQRCode({
      value: "#test"
    });
    

    现在你没有得到任何东西,可能(我还没有测试过,所以我可能弄错了)因为这段代码是错误的:

    $("#qrcode").kendoQRCode({
      $("#text").on("keyup", function () {
    qrcode.makeCode($(this).val());
    }).keyup().focus();
    });
    

    您正在尝试使用 Kendo UI QRCode 创建一个 QR 码,但传递的参数不正确(它是一个生成第一个 QR 码的事件侦听器)。如果您查看控制台,您可能会在该行代码中看到一些错误。

    您可能应该尝试返回原始代码,并按照文档中的说明添加size(或width/height)参数。


    根据 OP 的要求,这里有一个功能代码,允许使用 qrcode.js 设置 QR 码的大小:

    var qrcode = new QRCode("qrcode", { width:100, height:100 });
    
    $("#text").on("keyup", function () {
    qrcode.makeCode($(this).val());
    }).keyup().focus();
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="http://davidshimjs.github.io/qrcodejs/qrcode.min.js"></script>
    
    <input id="text" type="text"/>
    <div id="qrcode"></div>

    您还可以在此 JSFiddle 上看到它:http://jsfiddle.net/ysffjujh/1/。在这两种情况下,您只需更新heightwidth 的值即可生成不同大小的二维码。

    【讨论】:

    • 嗨!谢谢您的回答!对于我当前的 JAVASCRIPT 代码,我试图将它们组合在一起,因为我的 BEFORE 代码(BEFORE 代码中的第一个 QR 代码)可以在我在文本框中键入内容时自动生成 qr 代码,而 BEFORE 代码中的第二个 QR 代码是调整它的大小。我试图做一个自动生成,它也可以同时调整大小。我该怎么做才能将它们结合起来?有什么想法吗?谢谢! @阿尔瓦罗蒙托罗
    • 您要使用 qrcode.js 还是 Kendo UI QRCode?还是两者都像以前一样?
    • 我想使用 qrcode.js。当我只使用 qrcode.js 时,我进行了一些研究并进行了一些更改以调整其大小,但它不起作用。这就是为什么我将两者都用于我的代码。如果它只能与其中一个一起工作。我希望它是 qrcode.js 谢谢! @阿尔瓦罗蒙托罗
    • 添加了一个工作demo,可以使用qrcode.js指定二维码的宽高
    猜你喜欢
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    相关资源
    最近更新 更多