svg与canvas画图以及其他的html5元素

html5与js

媒体文件

<audio>
<video>
    src定义路径   autoplay自动播放    controls显示控件

表单

<p><input type="date"></p>   年月日
<p><input type="month"></p>  年月
<p><input type="time"></p>   时分秒
<p><input type="week"></p>   一年中的第几周
<p><input type="color"></p>  调色板
<p><input type="number" min="30" max="80" step="5"></p>   必须输入数字
<p><input type="range" id="id01" onchange="fun()"min="30" max="80" step="5"></p>  滚动条
<h1 id="show"></h1> 
<p><input type="emall" placeholder="请填邮箱" required></p>  邮箱,提示语,必输项
<p><input type="tel" placeholder="请填手机号"></p>           电话号,提示语,必输项
<p><input type="submit"></p>

布局
<header></header> 头部
<section>         正文
    <nav></nav>   菜单
    <article></article>  文章
    <aside></aside> 旁边
</section>
<footer></footer>  尾部

画图

区别:1、svg是伸缩矢量图形,canvas会依赖分辨率
     2、svg可以存成图片和字体文件格式,canvas必须与js连用
     3、svg可以被搜索,canvas可以嵌入图片
     4、svg可以放大缩小不失真,canvas可以制作动画和3d
     5、svg画图标,canvas可以画动画,地图,游戏等

svg

   1、创建画布
   <svg></svg>
   2、画直线
      <line x1="10" y1="10" x2="100" y2="100" stroke="red" stroke-width="3"></line>
      x1和y1是起始坐标,x2和y2是终止坐标 stroke线体颜色 stroke-width线体粗细

      矩形
      <rect x="50" y="50" width="200" height="200" 
      fill="red" stroke="black" stroke-width="3"
      rx="100" ry="100"></rect>
      x和y起始坐标,width宽度height高度 fill背景色 rx和ry设置圆角

      圆
      <circle cx="150" cy="150" r="80" fill="blue"></circle>
      cx和cy是中心点坐标 r是半径

      椭圆
      <ellipse cx="150" cy="150" rx="100" ry="50"></ellipse>
      cx和cy是中心点坐标 rx是水平半径 ry是垂直半径

      多边形
      <polygon points="150,0 0,150 300,150"></polygon> 
      标注所有点坐标,写作:x1,y1 x2,y2......

      路径
       M移动到 L直线连接 C曲线连接 S平滑曲线连接 Q二次贝塞尔曲线 Z封闭图形 T平滑贝塞尔曲线
       <path d="M0 150 S300 150 150 0"></path>
       所有点坐标以空格分割,再坐标轴前标出线体类型

canvas

      创建画布
      <canvas width="400px" height="300px" id="can1"></canvas>
      var can1=document.getElementById("can1")
      创建画笔
      var txt1=can1.getContext("2d")
      画线
      txt1.lineWidth=5 线体粗细
      txt1.strokeStyle="red" 线体颜色
      txt1.moveTo(50,50) 线体起始点
      txt1.lineTo(300,300) 线体终止点
      txt1.stroke() 连成线
      二次曲线
      txt1.moveTo(0,200)
      txt1.quadraticCurveTo(200,0,400,200)(x1,y1,x2,y2)
      贝塞尔曲线
      txt1.moveTo(100,0)
      txt1.bezierCurveTo(0,250,400,150,300,300)
      矩形
      txt1.fillStyle="green" 设置背景色
      txt1.strokeRect(50,50,200,100)线体矩形
      txt1.fillRect(150,150,200,100) 填充矩形
      值:x轴,y轴 宽度 高度
      圆形
      txt1.arc(200,150,150,0,Math.PI*2,true)
      值的顺序:xy轴中心点坐标,半径,起始位置,终止位置,true为逆时针画                      
      三角形                            
      txt1.moveTo(200,0)                    
      txt1.lineTo(0,150)                       
      txt1.lineTo(400,150)                      
      txt1.lineTo(200,0)                        
      txt1.stroke()//起点和终止点位置一样才是闭合的图形                                 
      txt1.stroke()线体三角形                                  
      txt1.fill()填充三角形     

设置文字
       空心文字
       txt.font="50px 楷体 "
       txt.strokeText("看看文字效果",100,100)
       txt.strokeText(内容,x,y)

       实心文字
       txt.font="50px 楷体 "
       txt.fillText("看看文字效果",100,100)
       txt.fillText(内容,x,y)

设置图片    
       var img=new Image()
       img.src="img/sxsj1.jpg"
       img.onload=function(){ 
            txt.drawImage(img,0,0,can.offsetWidth,can.offsetHeight)
       }

开始和结束画笔
        beginPath()开始画笔
        closePath()结束画笔
        解决的事情:当画多个图形,图形会一笔画出有多余的线体,或者样式一样,都会加载最后一个图形的样式
        所以给所画的图形设置两个函数
保存和重置
        save()保存
        restore()重置
        解决的事情:当画多个图形,其中一个图形想应用前面图形的样式,可以再前面图形设置保存
        当前图形绘制一模一样的样式
图形组合
        con.globalCompositeOperation=""设置组合方式
        组合方式
        source-over 绘制两个图形,新图形在上
        destination-over 绘制两个图形,旧图形在上
        source-atop 绘制旧图形和新图形的重叠部分
        destination-atop 绘制新图形和旧图形的重叠部分
        source-in 只绘制两个图形的重叠部分,显示新图形的颜色destination-in只绘制两个图形的重叠部分,显示旧图形的颜色source-out 绘制新图行没有重叠的部分
        destination-out 绘制旧图行没有重叠的部分
        lighter 绘制两个图形,重叠部分进行加色处理
        darker 绘制两个图形,重叠部分进行减色处理
        copy 只绘制新图形
        xor 给制两个图形 重鱼部公本透明

透明色
      globalAlphas设置透明度()0-1之间的值
阴影
      shadowOffsetX水平距离
      shadowOffsetY垂直距离
      shadowBlur模糊效果
      shadowColor阴影文字
变换
      translate(x,y)
      scale(x,y)缩放
      rotate()旋转
      transform(宽度,水平扭曲,垂直扭曲,高度,水平移动,垂直移动)矩阵
渐变色
      线性渐变
      var line=txt.createLinearGradient(x1,y1,x2,y2)
      line.addColorStop(0,"red")   //位置为0-1之间添加颜色
      line.addColorStop(0.5,"yellow")
      txt.fillStyle=line  //填充到背景
      txt.fillRect(0,0,500,500)

      径向渐变
      var rad=txt.createRadialGradient(250,250,50,250,250,100)
      值的顺序:内圆中心点x,y轴,内圆半径,外圆中心点x,y轴,外圆半径
      rad.addColorStop(0,"yellow")
      rad.addColorStop(0.5,"red")
      txt.fillStyle=rad
      txt.arc(250,250,100,0,Math.PI*2,false)
      txt.fill()

其他
      clip()裁切
      clearRect(x,y,width,height)清除

媒体操作
      属性和方法
      1、src路径
      2、controls 是否显示控件,为true显示控件
      3、autoplay 是否自动播放
      4、play()   在暂停处播放
      5、pause() 暂停
      6、load()   从头播放
      7、paused   判断是否暂停,true为暂停
      8、ended    判断是否停止,true为停止
      9、muted    获取或修改静音,true为静音
      10、volume  设置声音大小,0-1之间
      11、playbackRate 设置播放速度,1-5之间
      12、duration 总时长
      13、currentTime 当前播放位置
      14、startTime开始播放时间
      16、error   返回错误对象
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秃头程序员-疯子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值