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

      JavaScript實現的div拖動效果實例代碼

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

      JavaScript實現的div拖動效果實例代碼

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

        js實現的div拖動效果實例代碼:

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

        代碼實例如下:

      <!DOCTYPE html>

      <html>

      <head>

      <meta charset=" utf-8">

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

      <title>js實現的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>

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

        一.實現原理:

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

        二.代碼注釋:

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

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

        3.function Milan_StartMove(oEvent,div_id){},此函數為move元素的onclick事件處理函數,第一個參數是事件對象,第二個是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,將變量的值設置為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事件處理函數,之所以注冊到document對象上,是利用了事件冒泡原理,否則有可能鼠標指針滑出div,導致拖動失效的現象。

        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",設置left屬性值。

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

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

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


      更多相關文章推薦:

      1.最常用的20個javascript方法函數

      2.學習JavaScript的7個理由

      3.抽象語法樹在JavaScript中的應用

      4.JavaScript實現網頁刷新代碼段

      5.perl- javascript中class的機制

      6.JavaScript中的with關鍵字

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

      8.JavaScript實現的div拖動效果實例代碼

      【JavaScript實現的div拖動效果實例代碼】相關文章:

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

      Javascript簡單實現面向對象編程繼承實例代碼10-02

      jQuery實現的拖動調整表格單元格的大小代碼實例08-14

      JavaScript實現網頁刷新代碼段08-07

      javascript實現貪吃蛇代碼08-20

      30行代碼實現Javascript中的MVC06-08

      php和javascript之間變量的傳遞實現代碼09-02

      常用排序算法之JavaScript實現代碼段06-04

      JavaScript實例講解09-25

      關jQuery彈出窗口簡單實現代碼-javascript編程06-07

      主站蜘蛛池模板: 中国免费av网| 亚洲综合国产成人丁香五月小说| 中文字幕人妻av蜜臀| 亚洲国产精品中文字幕日韩| 国产91AV免费播放| 织金县| 国产亚洲欧美日韩国产片| 亚洲一区二区三区熟女少妇| 亚洲精品AⅤ无码精品丝袜无码| 越西县| 国产一区二区三区4区| 天天插天天干天天操| 成年毛片18成年毛片| 丰满人妻中文字幕乱码| 兴隆县| 英德市| 米奇亚洲国产精品思久久 | 商河县| 内地自拍三级在线观看| 成人国产一区二区三区精品不卡| 在线观看免费人成视频国产| 中文字幕有码在线视频| 中文字幕日韩熟女av| av无码电影一区二区三区| 霍林郭勒市| 定襄县| 鸡西市| 国产在线一区二区三区在线观看| 灯塔市| 加勒比在线一区二区三区| 万州区| 方正县| 欧美丝袜激情办公室在线观看| 欧美日一本| 亚洲乱熟女一区二区三区不卡| 被黑人操的嗷嗷叫视频| 精品一区二区国产主播| 日本女优中文字幕在线观看| 成人综合久久精品色婷婷| 日本黄色一区二区三区视频| 成人免费丝袜美腿视频|