拖放

draggable屬性

draggable屬性設(shè)置元素是否可以被拖動(dòng),該屬性有兩個(gè)值:true和false,默認(rèn)為false,當(dāng)值為true時(shí)表示元素選中之后可以拖動(dòng),否則不能拖動(dòng)。

例" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運(yùn)營 > 輕松學(xué):網(wǎng)頁設(shè)計(jì)14- HTML5的拖放和畫布

輕松學(xué):網(wǎng)頁設(shè)計(jì)14- HTML5的拖放和畫布

時(shí)間:2023-07-20 21:48:02 | 來源:網(wǎng)站運(yùn)營

時(shí)間:2023-07-20 21:48:02 來源:網(wǎng)站運(yùn)營

輕松學(xué):網(wǎng)頁設(shè)計(jì)14- HTML5的拖放和畫布:HTML5的拖放和畫布

拖放

draggable屬性

draggable屬性設(shè)置元素是否可以被拖動(dòng),該屬性有兩個(gè)值:true和false,默認(rèn)為false,當(dāng)值為true時(shí)表示元素選中之后可以拖動(dòng),否則不能拖動(dòng)。

例如,設(shè)置一張圖片可以被拖動(dòng),代碼為:

<img src="images/logo.jpg" border="1" draggable="true">

draggable屬性設(shè)置為true時(shí)僅僅表示該元素允許拖放,但是并不能真正實(shí)現(xiàn)拖放,必須與JavaScript腳本結(jié)合使用才能實(shí)現(xiàn)拖動(dòng)。

<script type="text/javascript"> function allowDrop(ev) { ev.preventDefault(); //設(shè)置允許將元素放置到其他元素中 } function drag(ev) { ev.dataTransfer.setData("Text", ev.target.id); //設(shè)置被拖動(dòng)元素的數(shù)據(jù)類型和值 } function drop(ev) { //當(dāng)放置被拖動(dòng)元素時(shí)發(fā)生drop事件 ev.preventDefault(); //設(shè)置允許將元素放置到其他元素中 var data = ev.dataTransfer.getData("Text"); //從dataTransfer對(duì)象讀取被拖動(dòng)元素的數(shù)據(jù) ev.target.appendChild(document.getElementById(data)); } </script><!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>拖放</title> <style type="text/css"> #div1 { /*目標(biāo)矩形的樣式*/ width: 300px; height: 130px; padding: 10px; border: 1px solid #aaaaaa; /*邊框?yàn)?px淺灰色實(shí)線邊框*/ } </style> <script type="text/javascript"> function allowDrop(ev) { ev.preventDefault(); //設(shè)置允許將元素放置到其他元素中 } function drag(ev) { ev.dataTransfer.setData("Text", ev.target.id); //設(shè)置被拖動(dòng)元素的數(shù)據(jù)類型和值 } function drop(ev) { //當(dāng)放置被拖動(dòng)元素時(shí)發(fā)生drop事件 ev.preventDefault(); //設(shè)置允許將元素放置到其他元素中 var data = ev.dataTransfer.getData("Text"); //從dataTransfer對(duì)象讀取被拖動(dòng)元素的數(shù)據(jù) ev.target.appendChild(document.getElementById(data)); } </script> </head> <body> <p>拖動(dòng)一束玫瑰花圖片到矩形框中</p> <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div> <br> <img id="drag1" src="images/a_bouquet_of_roses.jpg" draggable="true" ondragstart="drag(event)" width="100" height="120"> </body></html>


畫布

創(chuàng)建canvas元素

canvas元素的主要屬性是畫布寬度屬性width和高度屬性height,單位是像素。向頁面中添加canvas元素的語法格式為:

<canvas id="畫布標(biāo)識(shí)" width="畫布寬度" height="畫布高度">



</canvas>




例如,創(chuàng)建一個(gè)標(biāo)識(shí)為myCanvas,寬度為200像素,高度為100像素的<canvas>元素,代碼如下:

<canvas id="myCanvas" width="200" height="100"></canvas>

構(gòu)建繪圖環(huán)境

其語法格式為:

canvas.getContext(contextID)

繪制圖形的步驟

在創(chuàng)建好的canvas上,通過JavaScript繪制圖形的步驟如下:

1)創(chuàng)建canvas對(duì)象。

2)創(chuàng)建context對(duì)象。

3)繪制圖形。

繪制圖形

1.繪制矩形

(1)繪制填充的矩形

fillRect()方法用來繪制填充的矩形,語法格式為:

fillRect(x, y, weight, height);

(2)繪制矩形輪廓

strokeRect()方法用來繪制矩形的輪廓,語法格式為:

strokeRect(x, y, weight, height);

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>繪制矩形-獲得畫布對(duì)象</title> <style type="text/css"> canvas { border: 4px dotted orange; } </style> </head> <body> <canvas id="myCanvas" width="250" height="150"> 您的瀏覽器不支持 HTML5 canvas元素 </canvas> <script type="text/javascript"> var c = document.getElementById("myCanvas"); //獲取畫布對(duì)象 var cxt = c.getContext("2d"); //獲取畫布上繪圖的環(huán)境 cxt.fillStyle = "#ff0000"; //設(shè)置填充顏色 cxt.fillRect(10, 10, 150, 100); //繪制填充矩形 cxt.strokeStyle = "#0000ff"; //設(shè)置輪廓顏色 cxt.lineWidth = "5"; //設(shè)置輪廓線條寬度 cxt.strokeRect(100, 70, 260, 70); //繪制矩形輪廓 </script> </body></html>繪制填充的矩形和矩形輪廓,本例采用創(chuàng)建對(duì)象的第2種方法。

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>繪制矩形-創(chuàng)建畫布對(duì)象</title> <style type="text/css"> canvas { /*畫布的樣式*/ width: 200px; height: 120px; border: 2px solid red; margin: 10px; float: left; } </style> </head> <body> <button onclick="myFunction()">單擊此按鈕</button> <p>每單擊一次按鈕,將創(chuàng)建一個(gè)canvas元素,繪制一個(gè)黃色矩形</p> <script type="text/javascript"> function myFunction() { var x = document.createElement("CANVAS"); //創(chuàng)建canvas元素 var ctx = x.getContext("2d"); //獲取畫布上繪圖的環(huán)境 ctx.fillStyle = "orange"; //設(shè)置填充顏色 ctx.fillRect(20, 20, 150, 100); //繪制填充矩形 document.body.appendChild(x); //把創(chuàng)建的canvas元素添加到body文檔中 } </script> </body></html>2.繪制路徑

(1)lineTo()方法

lineTo()方法用來繪制一條直線,語法格式為:

lineTo(x, y)

(2)moveTo()方法

在繪制直線時(shí),通常配合moveTo()方法設(shè)置繪制直線的當(dāng)前位置并開始一條新的子路徑,其語法格式為:

moveTo(x, y)

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>繪制直線</title> </head> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;"> 您的瀏覽器不支持canvas元素. </canvas> <script type="text/javascript"> var c = document.getElementById("myCanvas"); //獲取畫布對(duì)象 var cxt = c.getContext("2d"); //獲取畫布上繪圖的環(huán)境 cxt.moveTo(10, 10); //定位繪圖起點(diǎn) cxt.strokeStyle = "#0000ff"; //設(shè)置線條顏色 cxt.lineWidth = "2"; //設(shè)置線條寬度 cxt.lineTo(150, 50); //第一條直線的終點(diǎn)坐標(biāo) cxt.lineTo(10, 50); //第二條直線的終點(diǎn)坐標(biāo) cxt.stroke(); //繪制當(dāng)前路徑的邊框 </script> </body></html>





3.繪制圓弧或圓

語法格式為:

arc(x, y, radius, startAngle, endAngle, counterclockwise)




<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>繪制圓弧和圓</title> </head> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;"></canvas> <script type="text/javascript"> var c = document.getElementById("myCanvas"); //獲取畫布對(duì)象 var cxt = c.getContext("2d"); //獲取畫布上繪圖的環(huán)境 cxt.fillStyle = "#ff0000"; //設(shè)置填充顏色 cxt.beginPath(); //初始化路徑 cxt.arc(60, 50, 20, 0, Math.PI * 2, true); //逆時(shí)針方向繪制填充的圓 cxt.closePath(); //封閉路徑 cxt.fill(); //填充路徑的內(nèi)部區(qū)域 cxt.beginPath(); //初始化路徑 cxt.arc(140, 40, 20, 0, Math.PI, true); //逆時(shí)針方向繪制填充的圓弧 cxt.closePath(); //封閉路徑 cxt.fill(); //填充路徑的內(nèi)部區(qū)域 cxt.beginPath(); //初始化路徑 cxt.arc(140, 60, 20, 0, Math.PI, false); //順時(shí)針繪制圓弧的輪廓 cxt.closePath(); //封閉路徑 cxt.stroke(); //繪制當(dāng)前路徑的邊框 </script> </body></html>

關(guān)鍵詞:畫布,設(shè)計(jì)

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉