博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTML5拖拽学习,canvas画布,
阅读量:5037 次
发布时间:2019-06-12

本文共 2361 字,大约阅读时间需要 7 分钟。

#拖拽学习要点  

- draggable
- οndragstart="drag(event)"
- οndrοp="drop(event)"
- οndragοver="fun2(event)"
- dataTransfer  
- preventDefault
###draggable
主要用false或者true来设置文本或者图片是否可以在页面拖拽  
###ondragstart  
主要在文本或者图片要拖拽的区域绑定事件,将event对象传过去--开始进行拖拽
     function start(e){
            e.dataTransfer.setData("Text",e.target.id);
        }
###ondrop
主要用于绑定事件到你想拖拽到你想要的div里面或者是其他标签里面(同样要将event对象传过去)
    function drop(e){
            var data = e.dataTransfer.getData("Text");
            e.target.appendChild(document.getElementById(data));
            e.preventDefault();
        }
###ondragover
主要用于拖拽完毕后的绑定事件
    function over(e){
            e.preventDefault();
        }
###dataTransfer
主要用于把需要拖拽的文本或者图片向拖放区传递数据的时候用,后面有以下属性:
(setData)当前要拖拽的数据 (getData)把准备需要拖拽的数据返回到要放到的地方
###preventDefault
preventDefault(); 阻止浏览器默认行为

利用画布绘制矩形  

      //获取canvas对象
      var canvas1=document.getElementById("first");
      //给canvas插入画笔
      var cxt=canvas1.getContext("2d")
      //准备绘制颜色
        cxt.fillStyle="red"
      //填充矩形:里面的4个参数分别为,X和Y轴放的位置,W和H设置矩形宽高;
        cxt.fillRect(0,0,100,100)  
两个矩形重叠  
        cxt.fillStyle="red"
        cxt.fillRect(0,0,100,100)
        cxt.fillStyle="blue"
        cxt.fillRect(60,60,100,100)  
每画一个矩形或者其他什么形状都需要在设置一下两个方法  
> cxt.beginPath();  //开始绘制
> cxt.closePath();  //结束绘制  
        cxt.fillStyle = "#1CA919";
        cxt.beginPath();
        cxt.fillRect(80,105,120,85);
        cxt.closePath();  
背景渐变  
        var my_gradient=cxt.createLinearGradient(0,0,0,300);
        my_gradient.addColorStop(0,"#6D76FA");
        my_gradient.addColorStop(0.5,"white")        
        my_gradient.addColorStop(1,"#A4C9FA");
        cxt.fillStyle=my_gradient;
        cxt.fillRect(0,0,1000,400);  
字体渐变  
    cxt.font="40px Verdana";
    var gradient=cxt.createLinearGradient(0,0,170,0);
    gradient.addColorStop("0","#A4C9FA");
    gradient.addColorStop("0.5","white");
    gradient.addColorStop("1.0","blue");
    cxt.strokeStyle=gradient;
    cxt.strokeText("书中只有黄金屋",20,100);  
图片展示  
    var img=new Image();
    img.src="20664369-1_b.jpg";
    img.onload = function()
    {
     cxt.drawImage(img,550,80,200,200);
    }  
图片剪切  
    var img=new Image();
    var img1=new Image();           
    img.src='20664369-1_b.jpg';           
    img.οnlοad=function(){
        cxt.drawImage(img,28,0,145,200,5,10,200,200);
    }
        img1.οnlοad=function(){
        cxt.drawImage(img1,30,0,140,193,200,205,200,200);
    }  
矩形旋转  
    ctx.fillStyle="yellow"; 
    ctx.fillRect(0,0,250,100);
    ctx.setTransform(1,0.5,-0.5,1,30,10);
 
矩形缩放  
    ctx.strokeRect(5,5,25,15); ctx.scale(2,2);
    ctx.strokeRect(5,5,25,15); ctx.scale(2,2);
    ctx.strokeRect(5,5,25,15); ctx.scale(2,2);
    ctx.strokeRect(5,5,25,15);  
>save()的意思是保存之前的状态,restore()之后就回到你save的那个时候的状态
 

转载于:https://www.cnblogs.com/hexiaoyi/p/4715487.html

你可能感兴趣的文章
二叉树的遍历问题总结
查看>>
Spring之面向切面编程AOP
查看>>
MATLAB GUI程序设计中使文本框接收多行输入的方法
查看>>
全文检索-Elasticsearch (四) elasticsearch.net 客户端
查看>>
Oracle DBMS_SESSION
查看>>
sublime复制当前行到下一行
查看>>
WPF 3D变换应用
查看>>
ArchLinux安装开源VMware Tools
查看>>
DB2 锁升级示例1
查看>>
16.RDD实战
查看>>
MainFrame知识小结(20120210)—dfsort/syncsort中的数据类型
查看>>
D - Flip tile
查看>>
Java连接RabbitMQ之创建连接
查看>>
开户vim编程之--cscope支持
查看>>
python数据类型图解
查看>>
C#微信登录-手机网站APP应用
查看>>
HTML5实践 -- iPhone Safari Viewport Scaling Bug
查看>>
一位数据挖掘成功人士 给 数据挖掘在读研究生 的建议
查看>>
Python3.6.0安装
查看>>
hdu1049
查看>>