国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
JavaScript頁面內(nèi)拖拽原理分析

實(shí)現(xiàn)拖拽的基本思路

  拖拽的基本原理就是根據(jù)鼠標(biāo)的移動來移動被拖拽的元素。鼠標(biāo)的移動也就是x、y坐標(biāo)的變化;元素的移動就是style.position的top和left的改變。當(dāng)然,并不是任何時候移動鼠標(biāo)都要造成元素的移動,而應(yīng)該判斷鼠標(biāo)左鍵的狀態(tài)是否為按下狀態(tài),是否是在可拖拽的元素上按下的。

  根據(jù)以上的基本原理,我寫出了下面的基本思路。感覺代碼還是比較短的,

 

  1. 拖拽狀態(tài) = 0鼠標(biāo)在元素上按下的時候{   
  2.     拖拽狀態(tài) = 1   
  3.     記錄下鼠標(biāo)的x和y坐標(biāo)   
  4.     記錄下元素的x和y坐標(biāo)   
  5.    }   
  6.    鼠標(biāo)在元素上移動的時候{   
  7.     如果拖拽狀態(tài)是0就什么也不做。   
  8.     如果拖拽狀態(tài)是1,那么   
  9.     元素y = 現(xiàn)在鼠標(biāo)y - 原來鼠標(biāo)y + 原來元素y   
  10.     元素x = 現(xiàn)在鼠標(biāo)x - 原來鼠標(biāo)x + 原來元素x   
  11.    }   
  12.    鼠標(biāo)在任何時候放開的時候{   
  13.     拖拽狀態(tài) = 0   
  14.    }   
  15.   

  將以上思路翻譯成JS代碼就可以實(shí)現(xiàn)拖拽的效果了。

  JavaScript代碼

 

  1. <mce:script type="text/javascript"><!--   
  2.    var dragging = false;   
  3.    var test;   
  4.    var mouseY;   
  5.    var mouseX;   
  6.    window.onload = function(){   
  7.     test = document.getElementById("test");   
  8.     test.onmousedown = down;   
  9.     test.onmousemove = move;   
  10.     document.onmouseup = up;   
  11.     test.style.position = "relative";   
  12.     test.style.top = "0px";   
  13.     test.style.left = "0px";   
  14.    }   
  15.    function down(event)   
  16.    {   
  17.     eventevent = event || window.event;    
  18.     dragging = true;    
  19.     mouseX = parseInt(event.clientX);   
  20.     mouseY = parseInt(event.clientY);   
  21.     objY = parseInt(test.style.top);   
  22.     objX = parseInt(test.style.left);   
  23.    }   
  24.    function move(event){   
  25.     eventevent = event || window.event;    
  26.     if(dragging == true){   
  27.         var x,y;   
  28.         y = event.clientY - mouseY + objY;   
  29.         x = event.clientX - mouseX + objX;   
  30.         test.style.top = y + "px";   
  31.         test.style.left = x + "px";   
  32.     }   
  33.    }   
  34.    function up(){   
  35.     dragging = false;   
  36.    }   
  37.    // --></mce:script> 

   HTML代碼

 

  1. <div id="test" style="border:1px solid; width:400px; background:#CCCCCC;">   
  2.      <p>我是拖拽示例DIV。</p>   
  3.      <p>可以試驗(yàn)一下效果。</p>   
  4.    </div>  

演示代碼

 

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    
  2.      <html xmlns="http://www.w3.org/1999/xhtml">    
  3.      <head>    
  4.      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    
  5.      <title>JavaScript拖拽示例網(wǎng)頁</title>    
  6.      <mce:script type="text/javascript"><!--     
  7.      var dragging = false;   
  8.      var test;   
  9.      var mouseY;   
  10.      var mouseX;   
  11.      window.onload = function(){   
  12.         test = document.getElementById("test");   
  13.         test.onmousedown = down;   
  14.         test.onmousemove = move;   
  15.         document.onmouseup = up;   
  16.         test.style.position = "relative";   
  17.         test.style.top = "0px";   
  18.         test.style.left = "0px";   
  19.      }   
  20.      function down(event)   
  21.      {   
  22.         eventevent = event || window.event;    
  23.         dragging = true;    
  24.         mouseX = parseInt(event.clientX);   
  25.         mouseY = parseInt(event.clientY);   
  26.         objY = parseInt(test.style.top);   
  27.         objX = parseInt(test.style.left);   
  28.      }   
  29.      function move(event){   
  30.         eventevent = event || window.event;    
  31.         if(dragging == true){   
  32.             var x,y;   
  33.             y = event.clientY - mouseY + objY;   
  34.             x = event.clientX - mouseX + objX;   
  35.             test.style.top = y + "px";   
  36.             test.style.left = x + "px";   
  37.         }   
  38.      }   
  39.      function up(){   
  40.         dragging = false;   
  41.      }   
  42.      // --></mce:script>    
  43.      </head>    
  44.          
  45.      <body>    
  46.      <div id="test" style="border:1px solid; width:400px; background:#CCCCCC;">    
  47.        <p>我是拖拽示例DIV。</p>    
  48.        <p>可以試驗(yàn)一下效果。</p>    
  49.      </div>     
  50.      </body>    
  51.      </html>  
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
javascript 拖拽
jquery鼠標(biāo)拖動層插件實(shí)例
javascript日歷控件——純javascript版
如何動態(tài)顯示div ? 更改div內(nèi)容 - .NET - 提供最全面實(shí)用的Java面試題,...
右下角彈框代碼
dom基礎(chǔ)2 — 實(shí)現(xiàn)鼠標(biāo)放大縮小查看圖片功能
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服