html5 笔记01

01 表单类型和属性

input的type属性

单行文本框: type=text

电子邮箱 : type=email

地址路径 : type= url

定义用于输入数字的字段: type=number

手机号码: type=tel

搜索框 : type=search

定义颜色选择器 : type=color

滑块控件 : type=range

定义日期 :type=date

定义输入时间的控件(无时区): type=time

日期时间:type=datetime-local

定义月份和年份:type=month

定义周和年控件:type=week

表单的新增属性

placeholder 占位符

autofocus 自动获取焦点

required 在提交表单之前必须填写输入字段

autocomplete 自动完成 默认值为on 开启 off 关闭提示功能

multiple 文件多选

02 音频标签(audio)

h5之前的网页没有办法显示音视频 用插件 flash

video audio 用法和img一样

video和audio的属性:

controls 规定应显示音频控件

autoplay 自动播放

loop 循环播放

兼容写法:

03 视频标签 (video)

poster 视频封面图

perload 预加载

autoplay 自动播放

muted 静音播放

兼容写法:

04 进度条标签

<progress> 标签表示任务的完成进度

属性:

max 规定任务所需的总工作量。默认值为1

value:规定任务已完成的部分。

05 canvas绘图

1. canvas 特点:

有自己默认高度: 300*150

不建议通过css设置宽高 使用行内属性设置宽高

canvas 不独占一行 属于行内块元素

canvas 一般建议兼容写法: 标签内部定义文字

2. canvas的使用步骤

定义canvas标签

<canvas style="border: 1px solid #000;" width="400" height="400">

您的浏览器版本不支持canvas绘图技术

</canvas>

js获取canvas对象

var mycanvas=document.getElementsByTagName('canvas')[0]

通过canvas对象获取画笔对象

var ctx=mycanvas.getContext('2d');

3.canvas绘制线的使用

.moveTo(x,y) 定点方法(当前画笔从哪里开始绘制)

.lineTo(x,y) 从当前定点位置开始 绘制到x,y点结束

.stroke() 描边

描边才能看见线 如果想要画多条线 要都画完再去描边 减少和浏览器的交互次数

.fill() 填充(把图形跳虫成实心的) 未闭合的图形会自动闭合

.closePath() 自动闭合图形

.lineWidth=数值 设置线的宽度

.strokeStyle='颜色' 设置描边的颜色(只针对描边图形生效)

.fillStyle='颜色' 设置填充的颜色(默认黑色)

.beginPath() 开辟新路径

上面的代码最终结果是两条线长一样

原因是 我们虽然描边了两次 但是canvas源码内部处于性能优化方面考虑

多次描边 只会按照最后一次的样式 一次性描边上去 节省性能

4.画笔的一些功能

ctx.lineCap 线两端的样式:

butt 默认值 没有样式

round 两端圆形

square 两端方块

交叉点:

上一条线的结束点 为第二条线的起点 这样才被识别为 交叉点

才可以设置交叉点样式

ctx.lineJoin="" 交叉点的样式

miter(默认值 不转换) 一个尖尖的 尖儿

round(交点呈现圆角)

bevel(平角样式,不呈现尖角)

不设置交叉点样式时 可以设置

ctx.miterLimit属性 0~5都是平角 6~9都是尖角

5.绘制矩形

.rect(x,y,width,height) 绘制一个矩形

可以通过fill画实心,也可以通过stroke画空心

.strokeRect(x,y,width,height) 直接绘制一个空心矩形

不用再次调用stroke方法 快速描边一个矩形

.fillRect(x,y,width,height) 直接绘制一个填充矩形

不用再次调用fill方法 快速填充一个矩形

6.绘制弧形

弧的绘制:

ctx.arc(圆心x,圆心y,半径r,开始弧,结束弧,布尔值(方向:顺/逆) 可选)

布尔值默认是false(顺时针) 开始的位置默认在右侧

例:

设置负值 然后结束的是45度 表示把剩余的都画了

ctx.arc(200,200,100,0,-Math.PI/180*45)

7.清除绘制内容

清除绘制内容(橡皮擦)

ctx.clearRect(x,y,width,height);

8.绘制文本

ctx.strokeText(str,x,y) 绘制空心字体

ctx.fillText(str,x,y) 绘制实心字体 默认比上面黑一些

ctx.font="20px 宋体" 字体大小(必须写family)

ps:只有字体变大才能看出stroke的效果

ctx.font="bold 50px 宋体" 可以有加粗效果

ctx.textBaseLine=""; 文本基线问题:

alphabetic 默认值 按照默认的字母基线对齐

top 顶部为基线

bottom 文本底部为基线

haning 如果有中文 那么比较top来说 更往下一点

ideographic 比bottom还往上一点

middle 文字中部对齐

ctx.textAligin="" 文本横向对齐方式

start/left end/right center

9.渐变的使用

先创建渐变对象 然后使用strokeStyle/fillStyle 引入渐变对象

10.阴影的绘制

Ctx.shadowColor="颜色" 阴影颜色

Ctx.shadowBlur=number 阴影模糊度

Ctx.shadow.OffsetX =number 模糊X轴

Ctx.shadow.OffsetY=number 模糊Y轴

Tips:filleRect和filleText都有阴影效果哟

11.canvas画图

绘制图片的方法

1.Ctx.drawImage(image,x,y)

参数1: 图片对象 参数23 图片绘制位置

按照原图片大小绘制

  1. Ctx.drawImage(image,x,y,width,height)

width和height可以改变图片大小

3.Ctx.drawImage(image,x,y,width,height,dtx,dty,dtwidth,dtheight)

图片对象 从哪一个点开始截取 截取的宽高 在哪一个点开始画 画的宽

能够从图片中截取一部分 画到canvas指定位置 并且 定义画的宽高

12.canvas转换的使用

Canvas中的转换只有旋转,位移,缩放

ctx.translate(x,y) 将canvas的0,0点平移到x,y位置

画布整体被往下平移以后 后面画的元素都会按照新的点去画

Ctx.scale(x,y) 缩放

会把内部的内容全部按比例缩放

Ctx.rotate(Math.PI/180*30) 参数是角度弧

相关推荐
自小吃多21 分钟前
FreeRTOS Semaphore信号量-笔记
笔记·stm32
axinawang27 分钟前
python笔记和练习----少儿编程课程【阶段二(二)】
笔记
sunbyte28 分钟前
Tailwind CSS v4 主题化实践入门(自定义 Theme + 主题模式切换)✨
前端·javascript·css·tailwindcss
Timmer丿38 分钟前
kafka学习笔记(四、生产者、消费者(客户端)深入研究(三)——事务详解及代码实例)
java·笔记·学习·kafka
湛海不过深蓝1 小时前
【css】css统一设置变量
前端·css
程序员的世界你不懂2 小时前
tomcat6性能优化
前端·性能优化·firefox
爱吃巧克力的程序媛2 小时前
QML ProgressBar控件详解
前端
进取星辰2 小时前
21、魔法传送阵——React 19 文件上传优化
前端·react.js·前端框架
wqqqianqian2 小时前
国产linux系统(银河麒麟,统信uos)使用 PageOffice 在线打开Word文件,并用前端对话框实现填空填表
linux·前端·word·pageoffice
BillKu2 小时前
CSS实现图片垂直居中方法
前端·javascript·css