給標籤設置一個draggable設置爲true, 標籤就能夠拖拽了javascript
看實例:css
<div draggable="true"><img src="images/225.jpg" alt="" style="width:100px;height: 100px;" ></div> <script> var box = document.querySelector("div"); box.ondragstart = function(){ console.log("我被拖拽了!"); } box.ondrag = function(){ console.log("我在被拖拽的過程當中"); } box.ondragend = function(){ console.log("拖拽結束了!"); } </script>
他是拖住時顯示的圖形和樣式 , 有三個參數:指定的元素(指點的陰影樣式),座標X 座標Y(x、y是拖拽時鼠標的位置)html
小案例:java
#box{margin-left:150px;} #box1 img{display: block;width:100px;height:100px;float:left;margin-left:20px;}
<div id="box"><img src="images/回收站.png" alt=""></div> <div id="box1"> <img src="images/惟美1.jpg"> <img src="images/惟美2.jpg"> <img src="images/惟美3.jpg"> <img src="images/惟美4.jpg"> </div> <script type="text/javascript"> //獲取 垃圾箱對象 var box = document.querySelector("#box"); //獲取圖片列表對象 var imgList = document.querySelectorAll("img"); //獲取圖片列表的父元素 var box1 = document.querySelector("#box1"); //遍歷圖片,而且增長拖拽開始事件 imgList.forEach(function(item,index){ item.ondragstart = function(event){ event.dataTransfer.setData("name",index); } }); //阻止冒泡 box.ondragover = function(event){ event.preventDefault(); }; box.ondrop = function(event){ // 獲取拖拽元素的編號 var index = event.dataTransfer.getData("name"); box1.removeChild(imgList[index]); }; </script>
實例效果圖:web
files (獲取外部拖拽的文件,返回一個filesList列表)canvas
方法一:readAsDataURL():參數爲要讀取的文件對象,將文件讀取爲DataUrl
方法二:Onload()事件函數:當函數文件讀取成功完成的時候觸發此事件。(this.result用來獲取讀取到的文件數據,若是是圖片,將返回base64格式的圖片數據)api
小案例:拖拽文件上傳:瀏覽器
#box{width:200px;height:200px;line-height:200px;text-align:center;border:5px dashed #eeee;background:pink;}
<div id="box">請將圖片拖到此區域</div> <div id="imgs"></div> <script> var box = document.querySelector("#box"); var imgList = document.querySelector("#imgs"); box.ondragover = function(event){ event.preventDefault(); }; box.ondrop = function(event){ event.preventDefault(); // 獲取外部拖拽的文件 var fileList = event.dataTransfer.files; for( var i = 0;i < fileList.length; i++){ if(fileList[i].type.indexOf("image")>-1){ var fd = new FileReader(); //讀取文件對象 fd.readAsDataURL(fileList[i]); fd.onload = function(){ //建立一個圖片節點 var img = document.createElement("img"); img.src = this.result; img.width = "200"; img.height = "200"; imgs.appendChild(img); } } } }; </script>
2.從新設置canvas標籤的寬高屬性會讓畫布擦除全部的內容app
3.能夠給canvas畫布設置背景色dom
<canvas></canvas> <script> var cas = document.querySelector("canvas"); var ctx = cas.getContext("2d"); </script>
canvas 的座標系從最左上角開始(0,0) .X 向右增大,Y向下增大
2.若是不設置起點,就會使用lineTo 的座標當作moveTo
繪製第一條直線:
<canvas width="200" height="200"></canvas> <script type="text/javascript"> //獲取canvas 節點 var cas = document.querySelector("canvas"); cas.style.border = "1px solid red"; // 獲取canvas 的上下文信息,首先獲取一個對象,而後在這個對象裏面畫畫 var cts = cas.getContext("2d"); //起點位置 cts.moveTo(50, 50); // 終點位置 cts.lineTo(100,100); // 開始描邊 cts.stroke(); </script>
畫一個三角形:
<canvas width="200" height="200"></canvas> <script type="text/javascript"> //獲取canvas 節點 var cas = document.querySelector("canvas"); cas.style.border = "1px solid red"; // 獲取canvas 的上下文信息,首先獲取一個對象,而後在這個對象裏面畫畫 var cts = cas.getContext("2d"); cts.beginPath(); //起點位置 cts.moveTo(50, 50); // 終點位置 cts.lineTo(100,100); cts.lineTo(200,100); cts.lineTo(50,50); // 開始描邊 cts.stroke(); cts.closePath(); </script>
<canvas width="600" height="600"></canvas> <script> var cas = document.querySelector("canvas"); cas.style.border = "1px solid red"; // 獲取上下文信息 var ctx = cas.getContext("2d"); var rectH = 10; var rectW = 10; ctx.lineWidth = 0.3; // 繪製水平線 for(var i= 0;i < cas.height/rectH; i++){ ctx.moveTo(0,i*rectH); ctx.lineTo(cas.width, i*rectH); } // 繪製垂直線 for(var i = 0; i < cas.width/rectW; i++){ ctx.moveTo(i*rectH,0); ctx.lineTo(i*rectH,cas.width); } ctx.stroke(); </script>
eg:
<canvas width="600" height="600"></canvas> <script type="text/javascript"> // 獲取節點對象 var cas = document.querySelector("canvas"); // 獲取上下文 var cat = cas.getContext("2d"); // 填充顏色爲紅色 cat.fillStyle = "red"; // 開始 繪製 cat.beginPath(); // 繪製描邊的顏色爲藍色 cat.strokeStyle = "blue"; // 設置起點的位置 cat.moveTo(50,50); // 設置第二個點的位置 cat.lineTo(200,200); // 設置第三個點的位置 cat.lineTo(50,200); // 定義填充,若是不寫,會出錯 cat.fill(); cat.closePath(); // 結束繪製 cat.stroke(); </script>
<canvas width="200" height="200"></canvas> <script> var cas = document.querySelector("canvas"); var cat = cas.getContext("2d"); cat.rect(50, 50, 100,100); cat.fillStyle = "pink"; cat.fill(); cat.strokeStyle = "yellow"; cat.stroke(); </script>
注意此方法繪製完路徑後當即進行stroke繪製
此方法執行完成後。當即對當前矩形進行fill填充
eg:
<canvas width="200" height="200"></canvas> <script> var cas = document.querySelector("canvas"); var cat = cas.getContext("2d"); cat.strokeRect(50, 50, 100, 100); cat.stroke(); </script>
eg:
<canvas width="200" height="200"></canvas> <script> var cas = document.querySelector("canvas"); var cat = cas.getContext("2d"); cat.fillRect(50, 50, 100, 100); cat.stroke(); </script>
eg:
<canvas width="200" height="200"></canvas> <script> var cas = document.querySelector("canvas"); cas.style.border = "1px solid red"; var cat = cas.getContext("2d"); cat.arc(100, 100, 100, 0, 2*Math.PI,false); cat.fillStyle = "skyblue"; cat.fill(); cat.stroke(); </script>
eg:
<canvas width="200" height="200"></canvas> <script> var cas = document.querySelector("canvas"); var cat =cas.getContext("2d"); cat.beginPath(); cat.fillStyle = "pink"; cat.moveTo(100,100); cat.arc(100,100,100,0,70*Math.PI/180,true); cat.closePath(); cat.fill(); cat.stroke(); cat.beginPath(); cat.moveTo(100,100); cat.arc(100,100,100,0,200*Math.PI/180,false); cat.fillStyle = "red"; cat.closePath(); cat.fill(); cat.stroke(); cat.beginPath(); cat.moveTo(100,100); cat.arc(100,100,100,0,90*Math.PI/180,false); cat.fillStyle = "blue"; cat.closePath(); cat.fill(); cat.stroke(); </script>
img.src = "imgs/arc.gif";
img.alt = "文本信息"; img.onload = function() { //圖片加載完成後,執行此方法
eg:
<canvas width="200" height="200"></canvas> <script> // 建立對象 var cas = document.querySelector("canvas"); // 建立上下文 var cat = cas.getContext("2d"); // 建立圖片對象 var img = new Image(); img.src = "images/惟美1.jpg"; img.onload = function(){ cat.drawImage(img, 50,50); } </script>
eg:
<canvas width="600" height="600"></canvas> <script> var cas = document.querySelector("canvas"); var cat = cas.getContext("2d"); var img = new Image(); img.src = "images/惟美1.jpg"; img.onload = function(){ // 圖片的原始的寬高爲 500 * 313 cat.drawImage(img, 0,0,400,313*400/500); } </script>
### 2.7.4 圖片裁剪,並在畫布上定位被裁剪的部分
eg:
<canvas width="600" height="600"></canvas> <script> var cas = document.querySelector("canvas"); var cat = cas.getContext("2d"); var img = new Image(); img.src = "images/惟美1.jpg"; img.onload = function(){ cat.drawImage(img, 20,20,200,200,0,0,100,100); } </script>
音頻標籤 , 使用 controls = "" 將控件展現出來
視頻標籤,使用 controls = "" 將控件展現出來
source
<source src=」sr1」></srouce> 使用source標籤能夠設置多個源
eg:
<audio src="yinping/johann_sebastian_bach_air.mp3" autoloop loop controls></audio> <script> var auo = document.querySelector("audio"); window.onload = function(){ setInterval(function(){ auo.play(); },1000); }
注意:autoplay 屬性在谷歌瀏覽器中不支持,因此小編在這裏用了一個setInterval方法,這個屬性在火狐瀏覽器中是能夠實現的。
eg:
<video id="v1" src="res/fun.mp4" ></video> <input type="button" value="我要暫停" id="btn1"> <input type="button" value="我要播放" id="btn2"> <input type="button" value="我要切換視頻" id="btn3"> <script type="text/javascript"> window.onload = function() { var v1 = document.getElementById("v1"); var btn1 = document.getElementById("btn1"); var btn2 = document.getElementById("btn2"); btn2.addEventListener('click', function() { v1.play(); }) btn1.onclick = function() { v1.pause(); } btn3.onclick = function() { v1.src = "res/1.mp4"; v1.play(); } } </script>
false,表示不使用捕獲(useCapture)
#### 3.2.3.1 DOM事件的三個階段
<video controls="" src="res/1.mp4" id="v1"></video> <script type="text/javascript"> window.onload = function() { // 獲取到相應的DOM節點 var v1 = document.getElementById("v1"); // 給dom節點綁定事件 v1.addEventListener("ended", function() { alert("請選擇下一個視頻"); }) } </script>
loadstart 開始加載
progress 運行的進度
suspend
emptied
stalled
play 播放
pause 暫停
loadedmetadata
loadeddata
waiting 等待
playing
canplay
canplaythrough
seeking
seeked
timeupdate
ended 結束
ratechange
durationchange
Volumechange
小編寄語:單詞有點多,我這裏不一一翻譯了,用的時候搜一下。
雖然多,可是很好理解,多記記單詞而已,相信本身!