原生JS实现拖拽图片效果_javascript技巧

本文实例为大家讲解了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拖拽效果的实现代码,希望对大家的学习有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索JS拖拽
JS拖拽图片
原生js实现拖拽、javascript 实现拖拽、原生js拖拽、原生拖拽、javascript 拖拽,以便于您获取更多的相关知识。

时间: 2024-11-01 21:39:34

原生JS实现拖拽图片效果_javascript技巧的相关文章

原生js实现类似弹窗抖动效果_javascript技巧

先在之前做的抖动窗口上做了点动作 无限变色 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> div{text-align: center;line-height: 150px;font-weight: bold;} #dv{width: 300

javascript动画之模拟拖拽效果篇_javascript技巧

先看看实现效果图, 模拟拖拽最终效果和在桌面上移动文件夹的效果类似 原理介绍 鼠标按下时,拖拽开始.鼠标移动时,被拖拽元素跟着鼠标一起移动.鼠标抬起时,拖拽结束 所以,拖拽的重点是确定被拖拽元素是如何移动的 假设,鼠标按下时,鼠标对象的clientX和clientY分别为x1和x2.元素距离视口左上角x轴和y轴分别为x0和y0 鼠标移动的某一时刻,clientX和clientY分别为x2和y2 所以,元素移动的x轴和y轴距离分别为x2-x1和y2-y1 元素移动后,元素距离视口左上角x轴和y轴的

JS鼠标拖拽实例分析_javascript技巧

本文实例讲述了JS鼠标拖拽实现方法.分享给大家供大家参考,具体如下: JS代码: <script> window.onload=function() { var oDiv=document.getElementById('div'); var disX=0; var disY=0; oDiv.onmousedown=function(ev) //鼠标按下DIV { var oEvent=ev||event; disX=oEvent.clientX-oDiv.offsetLeft; //鼠标的X

JS基于面向对象实现的拖拽库实例_javascript技巧

本文实例讲述了JS基于面向对象实现的拖拽库.分享给大家供大家参考.具体如下: 这是一个面向对象的JS拖拽库,可设置水平锁定.垂直锁定.锁定位置.锁定范围等,设定这些范围后,只能在设定的模式下拖动,我觉得这是个挺不错的拖拽实例. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-mxdx-draw-plug-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transi

js实现简单div拖拽功能实例_javascript技巧

本文实例讲述了js实现简单div拖拽功能的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="

JS基于面向对象实现的拖拽功能示例_javascript技巧

本文实例讲述了JS基于面向对象实现的拖拽功能.分享给大家供大家参考,具体如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <style> #div1 {width:100px; height:100px; background:red; position:absolute;} #div2 {width:100px; height:100px; background:yellow; posit

JS实现页面载入时随机显示图片效果_javascript技巧

本文实例讲述了JS实现页面载入时随机显示图片效果.分享给大家供大家参考,具体如下: <html> <head> <title>JS 随机图片效果</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <style type="text/css"> <!-- img { b

js实现的简练高效拖拽功能示例_javascript技巧

本文实例讲述了js实现的简练高效拖拽功能.分享给大家供大家参考,具体如下: 运行效果图如下: 具体代码如下: <!DOCTYPE HTML> <html> <head> <meta http-equiv="content-type" charset="utf-8" /> <meta http-equiv="content-type" content="text/html"

Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)_javascript技巧

我们看看之前的拖拽在周围有东西的时候会出现什么问题? 在高级浏览器中不会有啥问题,我们放到IE7下面测试一下,问题就出来了.如图 我们可以很清楚的看到,文字都已经被选中了.那这个用户体验很不好,用起来也不方便.顺便提一下,我们之前加了一个return false;帮我们解决了很多问题,如果去掉这个的话,chrome也会出现一样的问题.那么也就是说这个return false;可以解决chrome ff IE9+ 这些浏览器的问题. 实际上在我们开发中,页面上会有许多的元素组成,不可能就一个div