如何调整二维码大小?

One*_*ark 2 javascript css jquery qr-code kendo-ui

我当前的 HTML 代码:

<input id="text" type="text"/>
<div id="qrcode"></div>
Run Code Online (Sandbox Code Playgroud)

我的旧 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();
Run Code Online (Sandbox Code Playgroud)

我当前的 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();
Run Code Online (Sandbox Code Playgroud)

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

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

Alv*_*oro 6

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

$("#qrcode").kendoQRCode({
    value: "#test",
    size: 300
});
Run Code Online (Sandbox Code Playgroud)

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

根据qrcode.js 的文档,要设置生成的 QR 代码的大小,您可以使用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
});
Run Code Online (Sandbox Code Playgroud)

在本例中,QR 码将为 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"
});
Run Code Online (Sandbox Code Playgroud)

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

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

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

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


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

$("#qrcode").kendoQRCode({
    value: "#test",
    size: 300
});
Run Code Online (Sandbox Code Playgroud)
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
});
Run Code Online (Sandbox Code Playgroud)

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