html 基础之canvas 和 localStorage

1,建立一个canvas 画布:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 7     <title>Document</title>
 8     <style>
 9         body {
10             background: #f00;
11         }
12         #canvas {
13             background: #000;
14         }
15     </style>
16 </head>
17 <body>
18     <canvas id="canvas" width="300" height="200"></canvas>
19 </body>
20 </html>

1.2  动态创建canvas :

 1  <style>
 2         #canvas {
 3             border: 1px solid blue;
 4         }
 5     </style>
 6     <script>
 7         window.onload = function() {
 8             var Ocanvas = document.createElement('canvas');
 9             // Ocanvas.style.width = "300";
10             // Ocanvas.style.height = "200";
11             // Ocanvas.style.background = "red";
12             Ocanvas.id = "canvas";
13             Ocanvas.width = "300";
14             Ocanvas.height = "200";
15             Ocanvas.style.background = "red";
16             document.body.appendChild(Ocanvas);
17         }
18  </script>

1.3 使用canvas :画直线

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 7     <title>Document</title>
 8     <style>
 9         #canvas {
10             border: 1px solid blue;
11             background: white;
12         }
13         
14         body {
15             background: black;
16         }
17     </style>
18     <script>
19         window.onload = function() {
20             var Ocanvas = document.getElementById("canvas");
21             var Og = Ocanvas.getContext('2d'); // 获取2d 绘图环境
22             Og.lineWidth = 10; // 线条宽度
23             Og.strokeStyle = "#1133fb"; // 线条样式
24             Og.moveTo(100, 100); //起始点
25             Og.lineTo(200, 200); //结束点
26             Og.stroke(); // 渲染
27         }
28     </script>
29 </head>
30 <body>
31     <canvas id="canvas" width="500" height="250"></canvas>
32 </body>
33 </html>

 

1.4 canvas 作画:画圆弧

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 7     <title>Document</title>
 8     <style>
 9         #canvas {
10             border: 1px solid blue;
11             background: white;
12         }
13         body {
14             background: black;
15         }
16     </style>
17     <script>
18         window.onload = function() {
19             var Ocanvas = document.getElementById("canvas");
20             var Og = Ocanvas.getContext('2d'); // 获取2d 绘图环境
21             //beginPath() 方法开始一条路径,或重置当前的路径。
22             Og.beginPath();
23             Og.lineWidth = 10;
24             Og.strokeStyle = "#aa0072";
25             // 画圆,第一个参数为圆心的x,第二个参数为圆心的y,第三个参数为圆的半径,第四个参数为圆的起始点,第五个参数为圆的结束点,第六个参数为画圆的方向(false为顺时针,true为逆时针)
26             Og.arc(150, 100, 70, 0, 2 * Math.PI / 4, false);
27             Og.stroke(); // 渲染
28         }
29     </script>
30 </head>
31 <body>
32     <canvas id="canvas" width="500" height="250"></canvas>
33 </body>
34 </html>

运行结果:

 

2.1  sessionStorage 基础:浏览器上的临时变量,只要不关闭,临时变量就一直存在,直到关闭浏览器。临时变量的设置:window.sessionStorage.setItem('name','值');  获取临时变量:window.session.getItem('name')

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 7     <title>Document</title>
 8     <style>
 9     </style>
10     <script>
11         window.onload = function() {
12             var abtn = document.querySelectorAll("input");
13             var obj = {
14                 name: "huanying2015",
15                 sex: "man",
16                 age: 25
17             }
18             abtn[0].onclick = function() {
19                 // sessionStorage  存储在浏览器上的临时变量,只要不关闭浏览器,就一直存在,只要一关比浏览器,就不存在了
20                 window.sessionStorage.setItem('name', obj['name']);
21             }
22             abtn[1].onclick = function() {
23                 alert(window.sessionStorage.getItem('name'));
24             }
25             abtn[2].onclick = function() {
26                 // 清除浏览器上的临时变量
27                 window.sessionStorage.removeItem("name");
28             }
29         }
30     </script>
31 </head>
32 <body>
33     <input type="button" value="设置">
34     <input type="button" value="获取">
35     <input type="button" value="删除">
36 </body>
37 </html>

运行结果:

 

 

 

2.2  localStorage :永久性存储,与sessionStorage不同的是,关闭浏览器,变量的值也不会消失

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 7     <title>Document</title>
 8     <script>
 9         window.onload = function() {
10             var aInput = document.querySelectorAll("input");
11             var obj = {
12                 name: 'huanying2015',
13                 sex: 'man',
14                 age: 25
15             }
16             aInput[0].onclick = function() {
17                 window.localStorage.setItem('name', obj['name']);
18                 window.localStorage.setItem('sex', obj['sex']);
19                 window.localStorage.setItem('age', obj['age']);
20             }
21             aInput[1].onclick = function() {
22                 alert(window.localStorage.getItem('name') + '------' + window.localStorage.getItem('sex') + '-------' + window.localStorage.getItem('age'));
23             }
24             aInput[2].onclick = function() {
25                 window.localStorage.removeItem('name');
26                 window.localStorage.removeItem('sex');
27                 window.localStorage.removeItem('age');
28             }
29         }
30     </script>
31 </head>
32 <body>
33     <input type="button" value="设置" />
34     <input type="button" value="获取" />
35     <input type="button" value="删除" />
36 </body>
37 </html>

运行结果:关闭浏览器之后,之前设置的变量还在,还可以直接通过window.localStorage.getItem('属性名') 来直接获取

 

3. localStorage 的应用:在网页中输入变量名称,关闭网页时,变量名称存储的值还在,当再次打开网页时,浏览器直接调用 localStorage 中的值

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 7     <title>Document</title>
 8     <style>
 9     </style>
10     <script>
11         window.onload = function() {
12             var aInput = document.querySelectorAll("input");
13             var Otxt = document.querySelector("textarea");
14             if (window.localStorage.getItem('userName123')) {
15                 aInput[0].value = window.localStorage.getItem('userName123');
16             }
17             for (var i = 0, len = aInput.length; i < len; i++) {
18                 if (window.localStorage.getItem('sex1') == aInput[i].value) {
19                     aInput[i].checked = true;
20                 }
21             }
22             if (window.localStorage.getItem('shuoming')) {
23                 Otxt.value = window.localStorage.getItem('note');
24             }
25 
26             window.onunload = function() {
27                 if (aInput[0].value) {
28                     window.localStorage.setItem('userName123', aInput[0].value);
29                 }
30                 for (var i = 0, len = aInput.length; i < len; i++) {
31                     if (aInput[i].checked == true) {
32                         window.localStorage.setItem('sex1', aInput[i].value);
33                     }
34                 }
35                 if (Otxt.value) {
36                     window.localStorage.setItem('shuoming', Otxt.value);
37                 }
38             }
39         }
40     </script>
41 </head>
42 <body>
43     <p>
44         用户名:<input type="text">
45     </p>
46     <br>
47     <p>
48         性别:<br>
49         <input type="radio" name="sex1" value="男">50         <input type="radio" name="sex1" value="女">51     </p>
52     <p>
53         备注:
54         <textarea name="" id="" cols="30" rows="10"></textarea>
55     </p>
56 </body>
57 </html>

运行结果:

 

转载于:https://www.cnblogs.com/huanying2015/p/8592092.html

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

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

相关文章

国产数据助力金融行业维护信息安全

金融信息系统作为国家关键信息基础设施&#xff0c;直接关系到国家经济、社会的正常运行。长期以来&#xff0c;我国金融信息化依赖进口设备和系统&#xff0c;金融行业尤其是银行业被IBM、HP、甲骨文等外商捆绑较深&#xff0c;金融行业信息化设备的软硬件系统被外商垄断。这等…

etcd v3 集群——简单配置

2019独角兽企业重金招聘Python工程师标准>>> 一、etcd v3安装&#xff1a; tar -axf etcd-v3.2.0-linux-amd64.tar.gz -C /usr/local/src/chmod ax /usr/local/src/etcd-v3.2.0-linux-amd64/etcd*cp -a /usr/local/src/etcd-v3.2.0-linux-amd64/etcd* /usr/local/bi…

windows变量延迟_Windows 10的2018年10月更新可能推迟到11月(这就是原因)

windows变量延迟Microsoft stopped offering Windows 10’s October 2018 Update on October 6, as it was deleting some people’s files. Now, another ugly data loss bug has reared its head, and it won’t be fixed until November. 微软于10月6日停止提供Windows 10的…

根据MediatR的Contract Messages自动生成Minimal WebApi接口

大家好&#xff0c;我是失业在家&#xff0c;正在找工作的博主Jerry。今天给大家介绍一个能大大减少ASP.Net Minimal WebApi编码量的方法。我们一般会把微服务的VO和DTO封装成消息类&#xff0c;并作为WebApi的Request和Response参数进行网络传递。如果使用MediatR&#xff0c;…

bupt summer training for 16 #8 ——字符串处理

https://vjudge.net/contest/175596#overview A.设第i次出现的位置左右端点分别为Li&#xff0c;Ri 初始化L0 0&#xff0c;则有ans sum{ (L[i] - L[i-1]) * (n 1 - Ri) } 1 #include <cstdio>2 #include <cstring>3 #include <iostream>4 #include <a…

程序员必须知道的HTML常用代码有哪些?

HTML即超文本标记语言&#xff0c;是目前应用最为广泛的语言之一&#xff0c;是组成一个网页的主要语言。在现今这个HTML5华丽丽地占领了整个互联网的时候&#xff0c;如果想要通过网页抓住浏览者的眼球光靠因循守旧是不行的&#xff0c;程序猿们需要掌握一些必须知道的HTML常用…

公用ip地址查询_是什么使您无法更改公用IP地址并在Internet上造成严重破坏?

公用ip地址查询What exactly is preventing you (or anyone else) from changing their IP address and causing all sorts of headaches for ISPs and other Internet users? 到底是什么在阻止您(或其他任何人)更改其IP地址并导致ISP和其他Internet用户感到头疼&#xff1f; …

Vim的新一代补全插件:coc.nvim

coc.nvim可以同时在nvim和vim8.1上使用。 安装 参考官方&#xff1a;Install coc.nvim 推荐使用vim-plug插件管理器&#xff0c;在vimrc中添加&#xff1a; Plug neoclide/coc.nvim, {do: { -> coc#util#install()}} 然后输入命令:PlugInstall 等待插件下载&#xff0c;再等…

C++STL——概述

一、相关介绍 STL 标准模板库在编写代码的过程中有一些程序经常会被用到&#xff0c;而且需求特别稳定&#xff0c;所以C中把这些常用的模板做了统一的规范&#xff0c;慢慢的就形成了STL提供三种类型的组件: 容器、迭代器和算法&#xff0c;它们都支持泛型程序设计标准容器 顺…

固态硬盘可靠性_您可以通过使用较少的总容量来提高硬盘的可靠性吗?

固态硬盘可靠性Your computer has a massive hard drive that you significantly underuse. Would decreasing the size of the primary partition actually increase the lifespan of the drive? 您的计算机具有大量未充分使用的巨大硬盘驱动器。 减小主分区的大小是否会真正…

接收上传的multi-file的文件(四)

构建工程 为例创建一个springmvc工程你需要spring-boot-starter-thymeleaf和 spring-boot-starter-web的起步依赖。为例能够上传文件在服务器&#xff0c;你需要在web.xml中加入标签做相关的配置&#xff0c;但在sringboot 工程中&#xff0c;它已经为你自动做了&#xff0c;所…

数据库读写分离 - MyBatis

2019独角兽企业重金招聘Python工程师标准>>> 由于项目中数据量较大&#xff0c;访问量也较高&#xff0c;故在数据库的设计上&#xff0c;采用读写分离思想&#xff0c;达到性能要求&#xff01; 简单科普一下实现读写分离的思路 配置及加载数据库信息&#xff0c;即…

t-mobile频段_T-Mobile再次被黑客入侵:超过200万个帐号和地址可能泄漏

t-mobile频段Attackers may have compromised three percent of T-Mobile’s 77 million customers on Monday, revealing personal information like addresses, phone numbers, and account numbers. 周一&#xff0c;攻击者可能泄露了T-Mobile 7700万客户中的3&#xff05;&…

第二篇 第三章防火防烟分区检查(一)

仓库面积可以增加3倍 就是乘以4 要一定条件 : 第二篇 第三章防火防烟分区检查&#xff08;一&#xff09; 21分钟处 该题比较有代表性 停车库 耐火等级允许最大面积 民用建筑防火分区 防烟分区的划分    防火卷帘控制器的测试 防火阀 装在通风,空调系统中 只有连在风机主管…

如何在Xbox One或PlayStation 4上为Skyrim特别版安装Mods

The Elder Scrolls V: Skyrim Special Edition is now available on PlayStation 4 and Xbox One, and for the first time, “mods” are available to console gamers. Elder Scrolls V&#xff1a;Skyrim特别版现已在PlayStation 4和Xbox One上可用&#xff0c;并且首次向主…

微软宣布:PowerBI 已经与 Office 整合,一切更简单,变革又来了

很多人认为 Office 是 Office&#xff0c;PowerBI 是 PowerBI&#xff0c;怎么在 PPT 中显示 PowerBI 呢&#xff1f;这种问题以后将再不会存在。微软已经宣布&#xff0c;PowerBI 已经与 Office 深度整合&#xff0c;在未来的企业中&#xff0c;PowerBI 将与 Word&#xff0c;…

066:ORM查询条件详解-startswith和endswith:

ORM查询条件详解-startswith和endswith&#xff1a; startswith&#xff1a;判断某个字段的值是否是以某个值开始的。大小写敏感。示例代码如下&#xff1a; articles1 Article.objects.filter(title__startswith"fuck") 以上代码的意思是提取所有标题以 fuck 字符串…

前端工程师面试题汇总

HTML Doctype作用&#xff1f;严格模式与混杂模式如何区分&#xff1f;它们有何意义? HTML5 为什么只需要写 <!DOCTYPE HTML>&#xff1f; 行内元素有哪些&#xff1f;块级元素有哪些&#xff1f; 空(void)元素有那些&#xff1f; 页面导入样式时&#xff0c;使用lin…

火狐和chrome_Firefox,Chrome和Edge都将支持WebAuthn的硬件两因素身份验证

火狐和chromeLogging into Gmail or Facebook could soon mean plugging in a USB device, potentially making phishing a thing of the past. 登录Gmail或Facebook可能很快就意味着要插入USB设备&#xff0c;这可能使网络钓鱼成为过去。 That’s thanks to WebAuthn, a new o…

Could not delete .........May be locked by another process.

问题 原因&#xff1a;默认的设置是文件修改后立即发布&#xff0c;这样的设置是在你每个保存文件时都会触发&#xff0c;如果tomcat已经在运行&#xff0c;这样频繁的操作也会造成文件锁死 解决&#xff1a; Tomcat 右键clean 转载于:https://www.cnblogs.com/feiZhou/p/93…