最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript利用canvas實現(xiàn)鼠標(biāo)拖拽功能

 更新時間:2020年07月23日 15:22:17   作者:騎著代碼去流浪  
這篇文章主要為大家詳細(xì)介紹了javascript利用canvas實現(xiàn)鼠標(biāo)拖拽功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

利用canvas實現(xiàn)鼠標(biāo)拖拽功能,當(dāng)在元素上按下鼠標(biāo)并移動時,元素跟著鼠標(biāo)移動。

效果:

主要思路:

當(dāng)鼠標(biāo)按下時,用isPointInPath方法判斷鼠標(biāo)位置是否在元素上,如果在則鼠標(biāo)移動時元素跟著移動;當(dāng)鼠標(biāo)抬起時,將鼠標(biāo)移動事件和抬起事件置空。

代碼如下:

<canvas id="can" width="400" height="400"></canvas>
 <script type="text/javascript">
 var can = document.getElementById("can");
 var ctx = can.getContext("2d");
 //創(chuàng)建圓滑塊
 function createBlock(a,b){
 ctx.beginPath();
 ctx.fillStyle = "red";
 ctx.arc(a,b,30,0,Math.PI*2);
 ctx.fill();
 }
 //鼠標(biāo)按下,將鼠標(biāo)按下坐標(biāo)保存在x,y中
 createBlock(50,50);
 can.onmousedown = function(ev){
 var e = ev||event;
 var x = e.clientX;
 var y = e.clientY;
 drag(x,y);
 };
 //拖拽函數(shù)
 function drag(x,y){
 // 按下鼠標(biāo)判斷鼠標(biāo)位置是否在圓上,當(dāng)畫布上有多個路徑時,isPointInPath只能判斷最后那一個繪制的路徑
 if(ctx.isPointInPath(x,y)){
 //路徑正確,鼠標(biāo)移動事件
 can.onmousemove = function(ev){
  var e = ev||event;
  var ax = e.clientX;
  var ay = e.clientY;
  //鼠標(biāo)移動每一幀都清楚畫布內(nèi)容,然后重新畫圓
  ctx.clearRect(0,0,can.width,can.height);
  createBlock(ax,ay);
 };
 //鼠標(biāo)移開事件
 can.onmouseup = function(){
  can.onmousemove = null;
  can.onmouseup = null;
 };
 };
 }
</script>

更多精彩文章請點擊專題: Javascript拖拽特效匯總

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

基隆市| 喀喇沁旗| 沂水县| 林口县| 中牟县| 盖州市| 泉州市| 双流县| 明光市| 浮山县| 达日县| 志丹县| 朝阳区| 理塘县| 上虞市| 和田县| 方城县| 霍城县| 宝鸡市| 治县。| 临湘市| 山西省| 新宁县| 井陉县| 蒙山县| 桂东县| 临夏市| 浦北县| 民丰县| 凌海市| 淅川县| 琼结县| 丰宁| 二连浩特市| 紫金县| 鄂托克前旗| 洛扎县| 和田县| 寿阳县| 淳安县| 余江县|