h5-拖放 , canvas
h5-拖放
設定元素可拖動屬性
draggable="true"
拖放元素事件:事件物件為被拖拽元素(拖動的元素)
dragstart:拖拽前觸發
drag:拖拽前、拖拽結束之間,連續觸發
dragend:拖拽結束觸發
目標元素事件:目標元素為存放拖動物件的元素
dragenter:進入目標元素觸發,相當於mouseover
dragover:進入目標,離開目標之間,連續觸發
dragleave:離開目標元素觸發,相當於mouseout
drop:在目標元素上釋放滑鼠觸發(也就是拖放完成的時候 )
解決火狐下的問題:必須設定dataTransfer物件的setData方法才可以拖拽除圖片外的其他標籤
dataTransfer物件:
setData():設定資料key和value(必須是字串)
getData():獲取資料,根據key值,獲取對應的value
effectAllowed:設定游標樣式(none,copy,copyLink,copyMove,link,linkMove all和uninitialized)
setDragImage:三個引數,指定的元素,座標X,座標Y,拖動元素時滑鼠在元素的位置
files:獲取外部拖拽的檔案,返回一個filesList列表
fileList下有個type屬性,返回檔案的型別
fileReader(讀取檔案資訊):
readAsDataURL:引數為要讀取的檔案物件,將檔案讀取為DataUrl
onload: 當讀取檔案成功完成的時候觸發此事件
this.result來獲取讀取的檔案資料,如果是圖片,將返回base64格式的圖片資料
canvas 畫布
<canvas>不支援canvas瀏覽器</canvas>內容寫在canvas標籤中 預設:寬300 高150
繪製環境:getContext('2d'):目前只支援2d的場景
<canvas id="box" width="400" height="400"><!--canvas 畫布--> <span>瀏覽器不支援的時候顯示</span> </canvas> <!--預設的寬:300px 高150px--> <script type="text/javascript"> varoBox=document.getElementById("box"); //getContext("2d"); 是html5當中內建的物件,擁有折線 、圓形等等繪製圖像的方法 var oCanvas=oBox.getContext("2d") console.log(oCanvas) </script>
繪製方塊
fillRect(L,T,W,H)預設顏色為黑色 , 實心方塊
strokeRect(L,T,W,H),空心方塊
設定繪圖
ctx.fillStyle="#FF0000"; 填充顏色 (預設為黑)
lineWidth:線寬度,是一個數值
strokeStyle;邊線顏色
邊界繪製
lineJoin 邊界連線點樣式 (邊框角)
mlter(預設)、round(圓角) 、bevel(斜角)
lineCap 端點樣式(想要看端點需要先)
butt 預設 、round(圓角) 、square(高度多出為寬一半的值)
繪製路徑
beginPath(); 開始繪製路徑
closePath(); 結束繪製路徑
moveTo(x,y) 定義線條開始座標
lineTo(x,y) 定義線條結束座標
stroke:畫線,預設黑色
fill 填充,預設黑色
rect:矩形區域
clearRect: 刪除一個畫布的矩形區域
save:儲存路徑
restore:恢復路徑
繪製圓
arc(x,y,半徑,起始弧度,結束弧度,旋轉方向)
x,y起始位置
弧度與角度的關係:弧度=角度*Math.PI/180;
旋轉方向:順時針(預設:false)、逆時針(true)
文字
strokeText(text,x,y) - 在 canvas 上繪製空心的文字
fillText(text,x,y) - 在 canvas 上繪製實心的文字
font - 定義字型
textAlign: 預設是 start跟 left一樣的效果,end right center
textBaseline 文字上下的位置的方式預設 alphabetic
measureText(str).width; 只有寬度,沒有高度
陰影:
shadowOffectX、shadowOffectY X軸偏移Y軸偏移
shadowBlur 高斯模糊值
shadowColor 陰影顏色