欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

效果:

主要思路:

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

代碼如下:

<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();
 }
 //鼠標按下,將鼠標按下坐標保存在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){
 // 按下鼠標判斷鼠標位置是否在圓上,當畫布上有多個路徑時,isPointInPath只能判斷最后那一個繪制的路徑
 if(ctx.isPointInPath(x,y)){
 //路徑正確,鼠標移動事件
 can.onmousemove = function(ev){
  var e = ev||event;
  var ax = e.clientX;
  var ay = e.clientY;
  //鼠標移動每一幀都清楚畫布內容,然后重新畫圓
  ctx.clearRect(0,0,can.width,can.height);
  createBlock(ax,ay);
 };
 //鼠標移開事件
 can.onmouseup = function(){
  can.onmousemove = null;
  can.onmouseup = null;
 };
 };
 }
</script>

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論