javascript实现完美拖拽效果

 更新时间:2015年05月06日 10:39:15   投稿:hebedich  
javascript实现的拖拽效果,可以把屏幕上的图片拖动到任意地方,效果平滑,点击图片还可以从侧边展开图片的详细信息,非常好的相册效果

拖拽的原理

1.获取距离(鼠标的位置-odiv的外边距)

2.理解什么时候用onmousemove事件

3.判断是否过界

html代码:

<div id="div1"></div>

css代码:

#div1{width:100px;height:100px;background:red;position:absolute}

javascript代码:

window.onload=function(){
  var oDiv=document.getElementById("div1");
  var x=0;
  var y=0;
  oDiv.onmousedown=function(ev){
    var oEvent=ev||event;
    //鼠标的横坐标减去div的offsetLeft
    x=oEvent.clientX-oDiv.offsetLeft;
    //鼠标的纵坐标减去div的offsetTop
    y=oEvent.clientY-oDiv.offsetTop; 
     
    document.onmousemove=function(ev){
      var oEvent=ev||event;   
      var left=oEvent.clientX-x;
      var right=oEvent.clientY-y;
      //判断左边是否过界
      if(left<0){
        left=0;
      }
      //判断右边是否过界
      else if(left>document.documentElement.clientWidth-oDiv.offsetWidth){
        left=document.documentElement.clientWidth-oDiv.offsetWidth;
      }
      //判断上边是否过界
      if(right<0){
        right=0;
      }
      //判断下边是否过界
      else if(right>document.documentElenment.clientHeight){
        right=document.documentElenment.clientHeight-oDiv.offsetHeight;
      }
      oDiv.style.left=left+"px";
      oDiv.style.top=right+"px";
    }   
    document.onmouseup=function(){
      //清空document的事件
      document.onmousemove=null;
      document.onmouseup=null;
    }
    //解决低版本火狐bug,干掉系统默认
    return false;
  }
}

以上所述就是本文的全部内容了,希望大家能够喜欢。

相关文章

  • 详解JavaScript RegExp对象

    详解JavaScript RegExp对象

    RegExp对象是原生JavaScript中表示正则表达式的对象。接下来通过本文给大家详细介绍javascript regexp对象知识,需要的的朋友参考下吧
    2017-02-02
  • 一秒学会微信小程序制作table表格

    一秒学会微信小程序制作table表格

    这篇文章主要教大家一秒学会微信小程序制作table表格,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • JavaScript实现音乐播放器

    JavaScript实现音乐播放器

    这篇文章主要为大家详细介绍了JavaScript实现音乐播放器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • javascript实现checkBox的全选,反选与赋值

    javascript实现checkBox的全选,反选与赋值

    这篇文章主要介绍了javascript实现checkBox的全选,反选与赋值的方法,以实例形式详细分析了实现的思路及对应的html与js代码的实现过程
    2015-03-03
  • 微信小程序实现评论功能

    微信小程序实现评论功能

    这篇文章主要为大家详细介绍了微信小程序实现评论功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Javascript自定义事件详解

    Javascript自定义事件详解

    这篇文章主要介绍了Javascript自定义事件,本质就是观察者模式,好处就是将绑定事件和触发事件相互隔离开等等,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • Webpack框架核心概念(知识点整理)

    Webpack框架核心概念(知识点整理)

    webpack 是一个现代 JavaScript 应用程序的模块打包器(module bundler)。这篇文章主要介绍了Webpack框架核心概念(知识点整理),需要的朋友可以参考下
    2017-12-12
  • 使用typeof判断function是否存在于上下文

    使用typeof判断function是否存在于上下文

    这篇文章主要介绍了使用typeof判断function是否存在于上下文,在窗口加载时,使用typeof进行判断,需要的朋友可以参考下
    2014-08-08
  • javascript 折半查找字符在数组中的位置(有序列表)

    javascript 折半查找字符在数组中的位置(有序列表)

    折半查找字符在数组中的位置(有序列表),需要的朋友可以参考下。
    2010-12-12
  • uni-app实现数据上拉加载更多功能实例

    uni-app实现数据上拉加载更多功能实例

    数据列表在很多时候,经常会用到,下面这篇文章主要给大家介绍了关于uni-app实现数据上拉加载更多功能的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08

最新评论