码迷,mamicode.com
首页 > Web开发 > 详细

HTML5拖拽学习,canvas画布,

时间:2015-08-09 18:40:05      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

#拖拽学习要点  

- draggable

- ondragstart="drag(event)"

- ondrop="drop(event)"

- ondragover="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.onload=function(){

        cxt.drawImage(img,28,0,145,200,5,10,200,200);

    }

        img1.onload=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的那个时候的状态

 

HTML5拖拽学习,canvas画布,

标签:

原文地址:http://www.cnblogs.com/hexiaoyi/p/4715487.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!