国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

原生JS實現拖拽圖片效果

2019-11-20 10:38:31
字體:
來源:轉載
供稿:網友

本文實例為大家講解了JS實現拖拽圖片效果的詳細代碼,分享給大家供大家參考,具體內容如下

javascript event 對象的clientX,offsetX,screenX,pageX的區別:

用html5的drag來實現拖拽有兼容性問題,使用拖拽插件代碼又很多,而這個拖拽demo代碼少,并且兼容所有瀏覽器,很值得在項目中使用,

css樣式如下:

  #div1{     width: 100px; height: 100px;     background-color: #4D4D4D;     position: absolute; cursor: pointer;     -webkit-box-shadow: 3px 3px 0px 3px #C7C7C7;     box-shadow: 3px 3px 3px 0px #C7C7C7;   }  #parent{     width: 500px; height: 500px;     border: 1px solid #CDCDCD;     position: relative; margin: 0 auto;  //父級元素設置為:    background-color: #F4F4F4;   }  .postText{    width: 500px; height: 30px;margin: 0 auto; background-color: #F4F4F4;  }  .postText span{    padding:0px 10px;  }

html代碼如下:

<div id="parent">  <div id="div1" onmousemove="posMove(this.id)"></div></div><div class="postText">  移動的距離Top:<span id="posTop"></span>Left:<span id="posLeft"></span></div>

js代碼及注釋如下

function posMove(getdivid) {    var oDiv = document.getElementById(getdivid);    var oParent = document.getElementById('parent');    var sent = {      l: 10, //設置div在父元素的活動范圍,10相當于給父div設置padding-left:10;      r: oParent.offsetWidth - oDiv.offsetWidth, // offsetWidth:當前對象的寬度, offsetWidth = width+padding+border      t: 10,      b: oParent.offsetHeight - oDiv.offsetHeight,      n: 10    }    drag(oDiv, sent);   }    /**   *   * @param obj:被拖動的div   * @param sent :設置div在容器中可以被拖動的區域   */  function drag(obj,sent){    var dmW = document.documentElement.clientWidth || document.body.clientWidth;    var dmH = document.documentElement.clientHeight || document.body.clientHeight;    var sent = sent || {};    var l = sent.l || 0;    var r = sent.r || dmW - obj.offsetWidth;    var t = sent.t || 0;    var b = sent.b || dmH - obj.offsetHeight;    var n = sent.n || 10;    obj.onmousedown = function (ev){      var oEvent = ev || event;      var sentX = oEvent.clientX - obj.offsetLeft;      var sentY = oEvent.clientY - obj.offsetTop;      document.onmousemove = function (ev){        var oEvent = ev || event;        var slideLeft = oEvent.clientX - sentX;        var slideTop = oEvent.clientY - sentY;        if(slideLeft <= l){          slideLeft = l;        }        if(slideLeft >= r){          slideLeft = r;        }        if(slideTop <= t){          slideTop = t;        }        if(slideTop >= b){          slideTop = b;        }        obj.style.left = slideLeft + 'px';        obj.style.top = slideTop + 'px';        document.getElementById('posTop').innerHTML = slideTop;        document.getElementById('posLeft').innerHTML = slideLeft;      };      document.onmouseup = function (){        document.onmousemove = null;        document.onmouseup = null;      }      return false;    }  }  

以上就是關于js拖拽效果的實現代碼,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 资兴市| 谢通门县| 辰溪县| 江山市| 花莲市| 聊城市| 丰城市| 广东省| 武鸣县| 万山特区| 双城市| 阳新县| 双柏县| 微山县| 东乡县| 大洼县| 深水埗区| 巴楚县| 西平县| 晴隆县| 玉龙| 额济纳旗| 兴隆县| 青州市| 石阡县| 鹿邑县| 清徐县| 石柱| 岢岚县| 三原县| 彭州市| 厦门市| 铁岭市| 丰城市| 岳普湖县| 十堰市| 随州市| 天长市| 左贡县| 呈贡县| 望江县|