HTML5知识梳理

一、属性篇

1、placeholder 提示信息

 <input type="text" placeholder="请输入账号">
 <input type="password" placeholder="请输入密码">

2、input 的新type属性 在form表单下的Calendar类 标有New的是html5新增加

H5新增加的input属性大多数浏览器都不支持(除了Chrome)所以基本不适用,附带一张仅供参考的兼容图。

3、contenteditable (内容可编辑)-- 无兼容性问题 该属性可以被子元素继承 默认值为flase

<div contenteditable="true">我可以被修改
    <br>
    <span>我也可以被修改 因为我继承的父级</span>
</div>

4、draggable (被拖拽元素)

<div class="demo" draggable="true"></div> 
<!-- 兼容性 chrome safari 可以正常使用  Firefox 不好使-->
 <!-- 拖拽的声明周期,拖拽的组成
    1、拖拽开始 拖拽进行中 拖拽结束 
    2、按下物体的瞬间是不会触发事件的 
  --> 

1)被拖拽的物体上的事件:ondragstart,ondrag,ondragend

var dragDiv = document.getElementsByClassName('demo')[0];
         // 用户开始拖动元素触发
         dragDiv.ondragstart = function(e){
   
             console.log(e);
         } 
         // 物体正在拖拽中触发  
         dragDiv.ondrag = function(e) {
   
            console.log(e);
        } 
        // 用户拖拽元素结束触发 
        dragDiv.ondragend = function (e) {
   
            console.log (e);
        }

下面代码实现一个拖拽的小demo

    var dragDiv = document.getElementsByClassName('demo')[0];
    var beginX = 0;
    var beginY = 0;
        dragDiv.ondragstart = function (e) {
   
            beginX = e.clientX;
            beginY = e.clientY;
        }
        dragDiv.ondragend = function (e) {
   
            var x = e.clientX - beginX;
            var y = e.clientY - beginY;
            dragDiv.style.left = dragDiv.offsetLeft + x + 'px';
            dragDiv.style.top = dragDiv.offsetTop + y + 'px';
        }

2)目标区域上的事件 ondragenter ondragover ondragleave ondrop

<div class="box" draggable="true"></div>
<div class="target"></div>
<script>
    var targetDiv = document.getElementsByClassName("target")[0]
    targetDiv.ondragenter = function(e){
   
        // 并不是元素图形进入目标区域触发,而是拖拽的鼠标进入目标区域触发
        console.log(e)
    }
    targetDiv.ondragover = function(e){
   
        // 鼠标进入目标区域时不停触发
        console.log(e)
        // e.preventDefault();
    }
    targetDiv.ondragleave = function(e){
   
        // 离开目标区域触发
        console.log(e)
    }
    targetDiv.ondrop = function(e){
   
        // 当鼠标在目标区域松开时 想要在目标区域用ondrop,需要取消ondragover的默认事件
        // 所有标签元素,当拖拽周期结束时,默认事件时是回到原处
        // 事件是由行为触发的,但是一个行为可以不止触发一个事件
        // ondrapover --> 回到原处  --> 执行drop
        console.log(e)
    }
</script>

二、标签篇

1、语义化标签

<!-- 本质都是div只不过是名字不同 具有不同含义而已 -->
<header></header> <!--头部-->
<footer></footer> <!--尾部-->
<nav></nav> <!-- 导航栏 -->
<article></article> <!-- 文章,可以被直接引用 -->
<section></section> <!-- 段落 -->
<aside></aside><!-- 侧边栏,几乎不用 -->

2、canvas标签 --画板

  • 1、HTML5 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成。
  • 2、 标签只是图形容器,您必须使用脚本来绘制图形。
  • 3、若想书写canvas代码有提示的话 可以在前面加上
    /** @type {HTMLCanvasElement} */
    (1)创建一个画布
<canvas id="cav" width="300px" height="200px" style="border: 1px solid red;"></canvas> 
//注意: 标签通常需要指定一个id属性 (脚本中经常引用), width 和 height 属性定义的画布的大小.

(2)使用 JavaScript 来绘制图像
canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成:

<script>
        var canvas = document.getElementById('cav');
        var cxt = canvas.getContext("2d");   
        cxt.moveTo(100,100);   //定义起点位置
        cxt.lineTo(200,100);   //定义落点位置
        cxt.lineTo(200,200);
        cxt.closePath();    //自动闭合 只针对某一个路径一笔画出的图形才有用
        cxt.stroke();       // 绘画路径
        cxt.fill();         //  填充路径
     </script>

(3)案例: 使用canvas绘画矩形的几种不同方法
1、使用线条绘画

  <script>
         var canvas = document.getElementById('cav');
         var cxt = canvas.getContext('2d');
         // 用线绘画矩形 
         cxt.lineWidth = 10; //设置线的粗细
         cxt.moveTo(100,100);
         cxt.lineTo(300,100);
         cxt.lineTo(300,200);
         cxt.lineTo(100,200);
         cxt.closePath();
         cxt.stroke();
         cxt.fill();
    </script>

2、 使用rect() 方法

cxt.rect(100,100,200,100);  
// 四个参数分别为 起点横坐标 纵坐标 矩形的长度 矩形的宽度
cxt.stroke(); 

3、使用strokeRect() 方法

cxt.strokeRect(100,100,200,100); //一行代码就可以绘制

4、 fillRect()方法是绘制一个填充的矩形

cxt.fillRect(100,100,200,100);

(4)用canvas画图
1、画个圆

<script>
    /** @type {HTMLCanvasElement} */
    var canvas = document.getElementById('cav');
    var ctx = canvas.getContext('2d');
    <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值