中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      JavaScript實現(xiàn)的div拖動效果實例代碼

      時間:2024-07-08 23:05:38 JavaScript 我要投稿
      • 相關(guān)推薦

      JavaScript實現(xiàn)的div拖動效果實例代碼

        在js中要如何實現(xiàn)div拖動的效果,下面YJBYS小編為你帶來實例的代碼實現(xiàn)段,希望對你有所幫助!

        js實現(xiàn)的div拖動效果實例代碼:

        div的拖動效果在很多效果中都有應(yīng)用,當(dāng)然還有很多附加的功能,本章節(jié)只是給拖動效果,并介紹一下它的實現(xiàn)過程。

        代碼實例如下:

      <!DOCTYPE html>

      <html>

      <head>

      <meta charset=" utf-8">

      <meta name="author" content="" />

      <title>js實現(xiàn)的div拖動效果實例代碼</title>

      <style type="text/css">

      #oDiv{
      position:absolute;
      width:100px;
      height:60px;
      border:1px solid silver;
      left:100px;
      top:100px;
      z-index:9999;}#move{
      cursor:move;
      width:100%;
      height:15px;
      background-color:#0066cc;
      font-size:10px;}#close{
      float:right;
      width:10px;
      height:100%;
      cursor:hand;
      background-color:#cc3333;
      color:White;
      font-size:15px;}

      </style>

      <script type='text/javascript'>

      var offset_x;
      var offset_y;
      function Milan_StartMove(oEvent,div_id)
      {

      var whichButton;
      if(document.all&&oEvent.button==1)
      {
      whichButton
      =true;
      }

      else
      {
      if(oEvent.button==0)
      whichButton
      =true;
      }

      if(whichButton)
      {
      offset_x
      =parseInt(oEvent.clientX-oDiv.offsetLeft);
      offset_y
      =parseInt(oEvent.clientY-oDiv.offsetTop);
      document.documentElement.onmousemove
      =function(mEvent)
      {

      var eEvent=mEvent||event; var oDiv=div_id;
      var x=eEvent.clientX-offset_x;
      var y=eEvent.clientY-offset_y;
      oDiv.style.left
      =(x)+"px";
      oDiv.style.top
      =(y)+"px";
      }
      }
      }

      function Milan_StopMove(oEvent)
      {
      document.documentElement.onmousemove
      =null;
      }

      function div_Close(o) {o.style.display="none";}
      window.onload
      =function()
      {
      var omove=document.getElementById("move"); var oclose=document.getElementById("close");
      omove.onmousedown
      =function(){Milan_StartMove(event,this.parentNode)}
      omove.onmouseup
      =function(){Milan_StopMove(event)}
      oclose.onclick
      =function(){div_Close(this.parentNode.parentNode)}
      }
      </script>

      </head>

      <body>

      <div id="oDiv">
      <div id="move">
      <div id="close">X</div>
      </div>

      </div>

      </body>

      </html>

        以上代碼實現(xiàn)了div的拖動效果,下面簡單介紹一下此效果的實現(xiàn)過程:

        一.實現(xiàn)原理:

        實現(xiàn)的原理非常的簡單,就是將被拖動的div設(shè)置為絕對定位,然后根據(jù)鼠標指針的坐標不斷設(shè)定div的left和top屬性值即可,當(dāng)然在此過程中需要用到一些事件或者具體坐標的計算,這里就不介紹了,可以參閱代碼注釋。

        二.代碼注釋:

        1.var offset_x,聲明一個變量用來存儲鼠標指針距離div左邊緣的距離。

        2.var offset_y,聲明一個變量用來存儲鼠標指針距離div上邊緣的距離。

        3.function Milan_StartMove(oEvent,div_id){},此函數(shù)為move元素的onclick事件處理函數(shù),第一個參數(shù)是事件對象,第二個是move元素的父元素。

        4.var whichButton,聲明一個變量,用來存儲一個布爾值。

        5.if(document.all&&oEvent.button==1){},如果在IE8和IE一下瀏覽器中,且event的button屬性值為1,if(document.all)可用來是否是IE8和IE8以下瀏覽器,如果button屬性值等于1,那么就是點擊的鼠標左鍵。

        6.whichButton=true,將變量的值設(shè)置為true。

        7.if(oEvent.button==0),在其他瀏覽器中,如果button屬性值為0。

        8.if(whichButton){},如果whichButton為true,也就是鼠標左鍵被按下。

        9.offset_x=parseInt(oEvent.clientX-oDiv.offsetLeft),獲取鼠標指針坐標距離oDiv元素左邊緣的距離。

        10.offset_y=parseInt(oEvent.clientY-oDiv.offsetTop),獲取鼠標指針坐標距離oDiv元素上邊緣的距離。

        11.document.documentElement.onmousemove=function(mEvent){},為document對象注冊onmousemove事件處理函數(shù),之所以注冊到document對象上,是利用了事件冒泡原理,否則有可能鼠標指針滑出div,導(dǎo)致拖動失效的現(xiàn)象。

        12. var eEvent=mEvent||event,事件對象的兼容性寫法。

        13.var oDiv=div_id,將對象的引用賦值給oDiv變量。

        14.var x=eEvent.clientX-offset_x,獲取被拖動div的左邊緣距離窗口的距離。

        15.var y=eEvent.clientY-offset_y,獲取被拖動div的上邊緣距離窗口的距離。

        16.oDiv.style.left=(x)+"px",設(shè)置left屬性值。

        17.oDiv.style.top=(y)+"px",設(shè)置top屬性值。

        18.function Milan_StopMove(oEvent){document.documentElement.onmousemove=null;} ,松開鼠標左鍵時的事件處理函數(shù)。

        19.function div_Close(o){o.style.display="none";} ,點擊叉號時的事件處理函數(shù)。


      更多相關(guān)文章推薦:

      1.最常用的20個javascript方法函數(shù)

      2.學(xué)習(xí)JavaScript的7個理由

      3.抽象語法樹在JavaScript中的應(yīng)用

      4.JavaScript實現(xiàn)網(wǎng)頁刷新代碼段

      5.perl- javascript中class的機制

      6.JavaScript中的with關(guān)鍵字

      7.高效編寫JavaScript代碼的技巧

      8.JavaScript實現(xiàn)的div拖動效果實例代碼

      【JavaScript實現(xiàn)的div拖動效果實例代碼】相關(guān)文章:

      javaScript實現(xiàn)可縮放顯示區(qū)效果代碼07-07

      Javascript簡單實現(xiàn)面向?qū)ο缶幊汤^承實例代碼10-02

      jQuery實現(xiàn)的拖動調(diào)整表格單元格的大小代碼實例08-14

      JavaScript實現(xiàn)網(wǎng)頁刷新代碼段08-07

      javascript實現(xiàn)貪吃蛇代碼08-20

      30行代碼實現(xiàn)Javascript中的MVC06-08

      php和javascript之間變量的傳遞實現(xiàn)代碼09-02

      常用排序算法之JavaScript實現(xiàn)代碼段06-04

      JavaScript實例講解09-25

      關(guān)jQuery彈出窗口簡單實現(xiàn)代碼-javascript編程06-07

      主站蜘蛛池模板: 亚洲精品一区二区三区av| 国产91第一页| 宜川县| 成激情人妻视频| 欧美在线Aⅴ性色| 衡水市| 泌阳县| 亚洲av优女天堂熟女| 国产亚洲精品成人av在线| 亚洲av综合色区手机| 日本一区二区三区东京热| 精品在免费线中文字幕久久| 亚洲精品日本久久久中文字幕 | 亚洲av综合色区在线观看| 日本韩国黄色三级三级| 密山市| 开封市| 青州市| 抚松县| 兰西县| 五台县| 国产粉嫩美女一区二区三| 浦江县| 沙田区| av天堂资源网在线播放| 亚洲精品天堂av免费看| 伊通| 日韩偷拍一区二区三区视频| 国产真实乱对白在线观看| 美女熟妇67194免费入口| 免费在线日韩| 麻豆人妻无码性色AV专区| 日本免费一区在线播放| 国产精品成人久久一区二区| 久久久久久人妻一区精品| 2021最新久久久视精品爱 | 国产av一区二区三区国产精品| 青青草免费激情自拍视频| 国产精品亚洲国产| 国产美女胸大一区二区三区| 国产亚洲美女精品久久久2020|