使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo

 更新时间:2016年09月01日 13:54:37   作者:Fonour  
这篇文章给大家介绍使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo的实现思路,涉及到Jquery.Qrcode基本使用,Jquery.Qrcode对中文字符的支持及Jquery.Qrcode添加自定义Logo图片的相关知识,本文介绍非常详细,具有参考价值,感兴趣的朋友一起看看吧

0 Jquery.Qrcode简介

Jquery.Qrcode.js是一个在浏览器端基于Jquery动态生成二维码的插件,支持Canvas和Table两种渲染方式,它的优点是在客户端动态生成,减轻了服务端压力,尤其是在大量使用二维码的系统中。Jquery.Qrcode主要包括以下参数设置:

•render 定义二维码的渲染方式,有table和canvas两种渲染方式

•width 定义二维码的宽度

•height 定义二维码的高度

•text 定义二维码内容

•typeNumber 二维码的计算模式 一般默认为-1

•correctLevel 二维码的纠错级别

•background 定义二维码的背景颜色

•foreground 定义二维码的前景色

1 Jquery.Qrcode基本使用

1.0 添加相关引用

Jquery.Qrcode仅仅依赖于Jquery,所以我们只需要添加Jquery及Jquery.Qrcode的引用即可。

<script src="~/Content/js/jquery-2.1.4.min.js"></script>
<script src="~/Content/js/jquery.qrcode.min.js"></script>

1.1 添加渲染区域元素

Jquery.Qrcode使用div元素作为渲染的目标区域,在页面上添加一个div标签。

<div id="qrCodeDiv">
</div>

1.2 二维码生成

$("#qrCodeDiv").qrcode({
render: "canvas", // 渲染方式有table方式(IE兼容)和canvas方式
width: 260, //宽度
height: 260, //高度
text: "www.baidu.com", //内容
typeNumber: -1,//计算模式
correctLevel: 2,//二维码纠错级别
background: "#ffffff",//背景颜色
foreground: "#000000" //二维码颜色
});

二维码生成如下

2 Jquery.Qrcode对中文字符的支持

默认的Jquery.Qrcode是不支持中文编码的,上面我们如果将text的内容设置为中文字符串,生成二维码并扫描后会发现结果是乱码。这是因为jquery.qrcode采用 charCodeAt() 方式进行编码转换,默认采用UTF-8方式编码,而针对中文一般情况下是采用UTF-16编码实现,这样就会导致乱码的出现,解决方案就是在二维码编码前,将二维码的内容字符串转换成UTF-8格式,js转换方法如下。

function utf16to8(str) {
var out, i, len, c;
out = "";
len = str.length;
for (i = 0; i < len; i++) {
c = str.charCodeAt(i);
if ((c >= 0x0001) && (c <= 0x007F)) {
out += str.charAt(i);
} else if (c > 0x07FF) {
out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
} else {
out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
}
}
return out;
};

生成二维码时,将转码后的结果作为text的值即可

$("#qrCodeDiv").qrcode({
render: "canvas", // 渲染方式有table方式(IE兼容)和canvas方式
width: 260, //宽度
height: 260, //高度
text: utf16to8("汉字内容的二维码"), //内容
typeNumber: -1,//计算模式
correctLevel: 2,//二维码纠错级别
background: "#ffffff",//背景颜色
foreground: "#000000" //二维码颜色
});

3 Jquery.Qrcode添加自定义Logo图片

给二维码添加一个自定义的logo,会让你的二维码看上去更专业,默认的Jquery.Qrcode是不支持添加自定义Logo的,这里比较简单的实现方案就是,针对每个二维码添加一个img标签,让img在二维码区域相对居中显示即可。

<img id="qrCodeIco" src="~/images/logo.png" style="position: absolute;width: 30px; height: 30px;" />

控制img标签的位置

var margin = ($("#qrCodeDiv").height() - $("#qrCodeIco").height()) / 2; //控制Logo图标的位置
$("#qrCodeIco").css("margin", margin);

最终结果如下

Jquery.Qrcode下载

以上所述是小编给大家介绍的使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • jquery 插件学习(一)

    jquery 插件学习(一)

    jquery插件,有几种方法,有全局的,有对象方法的,一直觉得jquery插件迷迷糊糊,这阵子特地研究下,供那些像我一样的初学者借鉴下。嘻嘻
    2012-08-08
  • Jquery 方块随着鼠标所在的区域而放大

    Jquery 方块随着鼠标所在的区域而放大

    下面都是默认一样大小的方块,当鼠标放到你想要放的位置,则当前位置的方块则放大。
    2010-05-05
  • jquery 快速回到页首的方法

    jquery 快速回到页首的方法

    快速回到页首的方法有很多,在本文为大家介绍下使用jquery是如何做到的
    2013-12-12
  • jquery 图片预加载 自动等比例缩放插件

    jquery 图片预加载 自动等比例缩放插件

    在图片加载前显示一个加载标志,当图片下载完毕后显示图片出来 可对图片进行是否自动缩放功能
    2008-12-12
  • jQuery的运行机制和设计理念分析

    jQuery的运行机制和设计理念分析

    jQuery是一个非常优秀的JavaScript库,与Prototype,YUI,Mootools等众多的Js类库相比,它剑走偏锋,从Web开发实用的角度出发,抛除了其它Lib中一些不实用的东西,为开发者提供了短小精悍的类库。
    2011-04-04
  • jquery foreach使用示例

    jquery foreach使用示例

    jquery中的foreach想必大家并不陌生吧,使用jquery的朋友肯定会很熟悉,本文有个不错的示例大家不妨可以巩固一下
    2013-09-09
  • 一次$.getJSON不执行的简单记录

    一次$.getJSON不执行的简单记录

    下面小编就为大家带来一篇一次$.getJSON不执行的简单记录。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • jquery api参考 visualjquery 中国线路 速度快

    jquery api参考 visualjquery 中国线路 速度快

    jquery api参考 visualjquery 中国线路 速度快...
    2007-11-11
  • jQuery $.each遍历对象、数组用法实例

    jQuery $.each遍历对象、数组用法实例

    这篇文章主要介绍了jQuery $.each遍历对象、数组用法实例,本文讲解了在有参数和无参数的情况下遍历对象及遍历数组的例子及each方法的几种常用用法,需要的朋友可以参考下
    2015-04-04
  • jQuery实现产品对比功能附源码下载

    jQuery实现产品对比功能附源码下载

    一些电商网站产品或评测网站会为用户提供产品对比的功能,用户只需勾选多个需要对比的产品,就可以进行比对,下文给大家带来了jQuery实现产品对比功能,一起看下吧
    2016-08-08

最新评论