H5生成二维码(HTML、CSS、QrCodeJs内含源码)

news2024/12/27 11:57:33

H5生成二维码

  • 前言
  • 二维码实现过程
  • 页面实现关键点
  • 全部源码

前言

本文主要讲解如何通过原生HTML、CSS、Js中的qrcodejs二维码生成库,实现一个输入URL按下回车后输出URL。文章底部有全部源码,需要可以自取。
实现效果图:
生成二维码
上述实现效果为,在输入url后,回车,则消除旧的二维码生成新的二维码,输入为空则弹窗请输入URL。

二维码实现过程

因为页面又分为元素结构、布局、样式以及功能。那么在这节只讲二维码需要那部分。下节会讲布局部分关键点,最后一节则是全部源码。

  1. 导入qrcode的Js文件
  2. <script type="text/javascript" src="https://static.runoob.com/assets/qrcode/qrcode.min.js"></script>
  3. 导入后,写HTML body代码,一个id为text的input,一个id为qrcode的div。input用于输入,div用于装二维码。
  4. <input id="text" value="www.baidu.com"/><div id="qrcode"><\/div>
  5. js中,我首先定义一个qrcode变量用于初始化二维码,初始化二维码用的是
  6. new QRCode(DOM,{}) DOM是获取到的元素,{}是这个二维码的宽高内容等。在这里就是
  7. var qrcode=new QRCode(document.getElementById(('text'),{width:100px;height:100px;})
  8. 上述代码中,利用输入的url生成了一个宽高都为100px的二维码。
  9. 然后定义无参makeCode方法,用于判断输入框是否输入值,如果没输入则弹窗请输入,如果输入了则调用clear方法清除原有qrcode二维码,并调用qrcodejs自带的参数是url值的makeCode方法生成二维码
  10. 在script中全局调用一次makeCode方法。
  11. 定义一个text变量,用于装id为text的input。
  12. 对id为text的input进行键盘keydown监听,判断输入键盘key值是否为13,13就是回车键的key,是的话就调用无参的makeCode方法判断输入框内是否有值。
  13. 这样就实现了生成二维码功能。

页面实现关键点

本节讲解详细页面如何实现的几个

  • CSS:在全局样式中,outline去除inpu外轮廓,box-sizing:border-box计算元素宽高时不带内边距与边框宽高.如果不加outline在点击输入框后页面就变成了:

  • 在这里插入图片描述

  • CSS:flex布局,让元素水平垂直居中,justify-content和aligen-item都为center,min-height:100vh,最小高度为屏幕高度。如果不加flex布局,页面就变成了

  • 在这里插入图片描述

  • HTML:input和label用的是绝对定位和相对定位。

全部源码

<!DOCTYPE html>
<html>
	<head>
		<title>Javascript 二维码生成库:QRCode</title>
		<meta charset=UTF-8" />
		<script type="text/javascript" src="https://static.runoob.com/assets/qrcode/qrcode.min.js"></script>
		<style>
			/* outline去除inpu外轮廓,box-sizing:border-box计算元素宽高时不带内边距与边框宽高. */
			* {
				margin: 0;
				padding: 0;
				outline: none;
				box-sizing: border-box;
			}

			/* min-height:最小高度为100vh,也就是屏幕高度 */
			body {
				display: flex;
				justify-content: center;
				align-items: center;
				min-height: 100vh;
				background: linear-gradient(-135deg, #0099c8, #2133d0);
			}

			.wrapper {
				width: 600px;
				border: 1px solid gray;
				display: flex;
				padding: 30px;
				background-color: white;
			}

			.wrapper .wrapper_son {
				padding:50px 0px;
				position: relative;
				width: 80%;
			}
			.wrapper .wrapper_QR{
				position: relative;
				width: 20%;
			}
			.wrapper label {
				position: absolute;
				transform: translateY(-20px);
				font-size: 15px;
				color: #4158D0;
			}

			.wrapper input {
				width: 80%;
				height: 100%;
				padding:10px 0px;
				border: none;
				border-bottom: 2px solid #4158D0;;
				font-size: 17px;
				
			}
		</style>
	</head>
	<body>
		<div class="wrapper">
			<div class="wrapper_son">
				<label>URL:</label>
				<input id="text" type="text" value="https://www.baidu.com" /><br />
			</div>
			<div class="wrapper_QR">
				<div id="qrcode" style="width:100px; height:100px; margin-top:15px;"></div>
			</div>
		</div>
		
		<script type="text/javascript">
			var qrcode = new QRCode(document.getElementById("qrcode"), {
				width: 100,
				height: 100
			});

			function makeCode() {
				var elText = document.getElementById("text");

				if (!elText.value) {
					alert("请输入URL");
					elText.focus();
					return;
				}
				qrcode.clear();
				qrcode.makeCode(elText.value);
			}

			makeCode();
			let text = document.getElementById('text')
			text.addEventListener('keydown', function(e) {
				if (e.keyCode == 13) {
					makeCode();
				}
			})
		</script>
	</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1232969.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年11月中旬大模型新动向集锦

2023年11月中旬大模型新动向集锦 2023.11.21版权声明&#xff1a;本文为博主chszs的原创文章&#xff0c;未经博主允许不得转载。 1、谷歌生成式 AI 搜索生成体验&#xff08;SGE&#xff09;扩展到 120 多个新国家/地区 近日&#xff0c;Google 扩展了其由生成式人工智能驱…

无法打开 “XXXX“ ,因为Apple 无法检测其是否包含恶意软件

解决方案 设置 - > 隐私和安全性 这里会显示这个,点击仍要打开

高压放大器使用方法介绍

高压放大器是一种用于放大高压信号的电子设备&#xff0c;常用于科学研究、工业应用和医疗设备等领域。它可以将低电压信号放大到较高的电压水平&#xff0c;以满足特定应用的需求。 使用高压放大器需要注意以下几个方面&#xff1a; 1.了解设备规格&#xff1a;在使用高压放大…

Linux操作系统使用及C高级编程-D9D10Linux 服务搭建与使用

TFTP服务器 TFTP&#xff08;Trivial File Transfer Protocol&#xff09;即简单文件传输协议&#xff0c;是TCP/IP协议中一个用来在客户机与服务器之间进行简单文件传输的协议&#xff0c;提供不复杂、开销不大的文件传输服务。端口号为69 1、使用客户服务器方式和使用UDP数据…

Vue项目Jenkins自动化部署

1. 需求描述 我们希望提交uat分支时,UAT项目能够自动发布,提交master分支时,无需自动发布,管理员手工发布 2. 效果展示 3. 采用技术 Jenkins + K8S + Docker + Nginx 4. 具体实现 4.1 编写default.conf 在Vue项目根目录新建default.conf文件,主要进行代理配置、首页…

yum 搭建仓库 http/ftp

目录 http ftp http 服务端 1. 下载 httpd 服务&#xff0c;记得将防火墙和安全终端全部关掉 2. 开启 httpd 服务 3. 临时挂载 客户端 1. 下载 httpd 服务&#xff0c;记得将防火墙和安全终端全部关掉 2. 开启 httpd 服务 3. 进入 /etc/yum.repos.d 4. 新建一个目录 mhy&…

代码随想录 11.21 || 单调栈 LeetCode 84.柱状图中最大的矩形

84.柱状图中最大的矩形 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1。求在柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。和 42.接雨水 类似&#xff0c;在由数组组成的柱状图中&#xff0c;根据条件求解。 图…

本地/笔记本/纯 cpu 部署、使用类 gpt 大模型

文章目录 1. 安装 web UI1.1. 下载代码库1.2. 创建 conda 环境1.3. 安装 pytorch1.4. 安装 pip 库 2. 下载大模型3. 使用 web UI3.1. 运行 UI 界面3.2. 加载模型3.3. 进行对话 使用 web UI 大模型文件&#xff0c;即可在笔记本上部署、使用类 gpt 大模型。 1. 安装 web UI 1…

nvm 离线安装,并离线安装指定版本 node

1. 离线安装 nvm 通常通过网络安装nvm的时候会被墙&#xff0c;所以nvm安装就只能进行离线安装了。 我们可以在github上下载nvm的安装包&#xff0c;然后在本地安装&#xff0c;下载地址&#xff1a;点击直达 点进去的详情长这样&#xff1a; 将下载下来的文件放到服务器&…

jdk9.0.1下载、安装、配置

下载路径xIndex of java-local/jdk/9.0.111 安装 环境变量配置 新增变量&#xff1a;JAVA_HOME 值&#xff1a;安装路径 path中新增&#xff1a;%JAVA_HOME%\bin

LeetCode【76】最小覆盖子串

题目&#xff1a; 思路&#xff1a; https://segmentfault.com/a/1190000021815411 代码&#xff1a; public String minWindow(String s, String t) { Map<Character, Integer> map new HashMap<>();//遍历字符串 t&#xff0c;初始化每个字母的次数for (int…

华为防火墙 DMZ 设置

DMZ 是英文"Demilitarized Zone"的缩写&#xff0c;中文名称为"隔离区" 它是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题&#xff0c;而设立的一个位于内部网络与外部网络之间的缓冲区&#xff0c;在这个网络区域内可以放置一些公开的服务…

用户增长常见分析模型

一、用户增长是什么 用户增长基本上会涉及生意场上的各行各业&#xff0c;你开个店面希望有更多的客户光顾&#xff0c;你做了个APP希望有更多的用户经常使用&#xff0c;你搭建了个电商平台希望有更多的人下单买东西。 用户增长&#xff0c;即以提升用户LTV为目的&#xff08…

Oauth2认证及Spring Security Oauth2授权码模式

Oauth2认证 Oauth2简介 简介 第三方认证技术方案最主要是解决认证协议的通用标准问题&#xff0c;因为要实现跨系统认证&#xff0c;各系统之间要遵循一定的接口协议。 OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时&#xff0c;任何第三方都可以使…

企企通亮相广东智能装备产业发展大会:以数字化采购促进智能装备产业集群高质量发展

制造业是立国之本&#xff0c;是国民经济的主要支柱、是推动工业技术创新的重要来源。 广东作为我国制造业大省&#xff0c;装备制造业规模增长快速&#xff0c;技术水平居于全国前列。为全面贯彻学习党的二十大精神&#xff0c;进一步推动机械装备可靠性设计&#xff0c;促进新…

【Proteus仿真】【Arduino单片机】多功能数字时钟设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用PCF8574、LCD1602液晶、DS1302温度传感器、DS1302时钟、按键、蜂鸣器等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602显示当前日期…

放大招:腾讯云5年服务器和3年轻量应用服务器租用价格表

腾讯云3年轻量和5年云服务器CVM优惠活动入口&#xff0c;3年轻量应用服务器配置可选2核2G4M和2核4G5M带宽&#xff0c;5年CVM云服务器可以选择2核4G和4核8G配置可选&#xff0c;阿腾云atengyun.com分享腾讯云3年轻量应用服务器和5年云服务器CVM优惠活动入口和配置报价&#xff…

【C++上层应用】5. 文件和流

文章目录 【 1. 打开文件 】1.1 open 函数1.2 open 多种模式的结合使用 【 2. 关闭文件 】【 3. 写入 & 读取文件 】【 4. 文件位置指针 】 和 iostream 库中的 cin 标准输入流和 cout 标准输出流类似&#xff0c;C中另一个库 fstream 也存在文件的读取流和标准写入流。fst…