当前位置: 首页 > news >正文

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  图片绘制位置

                                按照原图片大小绘制

                        2. 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) 参数是角度弧

http://www.lryc.cn/news/351103.html

相关文章:

  • E5063A是德科技e5063a网络分析仪
  • 【星海随笔】微信小程序(二)
  • Python采集安居客租房信息
  • Rust构造JSON和解析JSON
  • Linux 信号捕捉与处理
  • 桂林电子科技大学计算机工程学院、广西北部湾大学计信学院莅临泰迪智能科技参观交流
  • Qt笔记:动态处理多个按钮点击事件以更新UI
  • Excel模板计算得出表格看板
  • es数据备份和迁移Elasticsearch
  • Oracle数据块之数据行中的SCN
  • 手写tomcat(Ⅱ)——Socket通信+tomcat静态资源的获取
  • 解决Error: error:0308010C:digital envelope routines::unsupported的四种解决方案
  • shell 脚本笔记2
  • aws eks集成wasm运行时并启动pod
  • linux:切分大文件
  • docker 配置文件使用经验,后续持续增加
  • Qml:键盘事件
  • Java列表导出时将附件信息压缩成一个zip
  • 简单美观易上手的 Docker Compose 可视化管理器 Dockge
  • 贴片 RS8752XK 封装SOP-8 250MHz,2通道高速运放
  • 图论-最短路算法
  • 家政预约小程序05服务管理
  • Django自定义命令
  • 详解VLSM技术
  • 面向浏览器端免费开源的三维可视化编辑器,包含BIM轻量化,CAD解析预览等特色功能。
  • Nacos 进阶篇---Nacos服务端怎么维护不健康的微服务实例 ?(七)
  • 【oracle004】oracle内置函数手册总结(已更新)
  • 建模:Maya
  • 持续总结中!2024年面试必问 20 道 Redis面试题(四)
  • Java中关于List的一些常用操作