美文网首页LiYajie web前端
web前端-原生鼠标拖拽效果

web前端-原生鼠标拖拽效果

作者: LiYajie | 来源:发表于2017-03-12 19:02 被阅读34次

鼠标拖拽效果分为3个事件

  1. 鼠标按下事件onmousedown, 事件源是点击的对象, 就是我们要拖拽的对象
  2. 鼠标移动事件onmousemove, 注意下这里, 鼠标移动的时候的事件源就是document
  3. 鼠标抬起事件onmouseup, 当我们鼠标抬起的时候我们需要把鼠标移动事件清空.

代码如下:

<span class='span' id='span'></span>
.span{
  position:absolute;
  width: 100px;
  height: 100px;
  background-color: #0094ff;
  cursor:pointer;
}
// 获取到需要拖拽的标签
var span = document.getElementById('span');
// 绑定鼠标按下事件
span.onmousedown = function(event){
  var event = event || window.event;
  // 计算鼠标按下位置距离元素的左边的距离,
  // `offsetLeft`, 就是元素的左边距离元素的`offsetParent`的偏移量
  var chaX = event.clientX - span.offsetLeft;
  // 计算鼠标按下位置距离元素的上边的距离, 
  //`offsetTop`, 就是元素的左边距离元素的`offsetParent`的偏移量, 
  //计算出来的值就是鼠标点击的位置距离元素左边的距离
  var chaY = event.clientY - span.offsetTop;
  document.onmousemove = function(event){
    var event = event || window.event;
    /* 元素的定位是通过左上角的left和top来定位, 
    * 所以我们只需要设置left和top就可以了, 
    * 但是left和top值我们需要通过鼠标的位置减掉鼠标距离元素左边的距离, 
    * 这样才能保证我们鼠标点击的位置不变
    */
    span.style.left = event.clientX - chaX + 'px';
    span.style.top = event.clientY - chaY + 'px';
  }
  // 给我们最大的事件源绑定鼠标抬起事件, 当抬起的时候, 移除鼠标移动事件.
  document.onmouseup = function(){
  document.onmousemove = null;
}
}

原生鼠标拖拽效果Demo

相关文章

  • web前端-原生鼠标拖拽效果

    鼠标拖拽效果分为3个事件 鼠标按下事件onmousedown, 事件源是点击的对象, 就是我们要拖拽的对象 鼠标移...

  • 原生js鼠标拖拽效果

    常用的鼠标事件有onmousedown(鼠标按下)、onmousemove(鼠标拖动)、onmouseup(鼠标弹...

  • 拖拽,碰撞检测

    1. 拖拽 1.1 拖拽原理 鼠标拖拽效果的实现,就是在鼠标摁下和移动的时候,修改元素的定位值的效果。 1.1.1...

  • HTML5实现拖拽

    实现拖拽效果源元素 - 要拖拽的文件目标元素 - 要拖拽到哪里去 目前实现拖拽效果使用原生DOM就能实现 - 最麻...

  • js实现拖拽

    ①鼠标按下+鼠标移动 → 拖拽②鼠标松开 → 无拖拽③鼠标偏移 → 拖拽距离 js实现 ① onmousedown...

  • July 30-day13-Python中Pygame

    触碰事件 有鼠标、键盘等等 对鼠标事件的应用 鼠标点击事件的应用(对鼠标的拖拽) 字体动画的效果 键盘事件的应用 ...

  • 滚动条触发CSS3动画

    近几年web前端的,关于鼠标滑动到当前页面从而触发动画效果十分的火热,今天我们就来学习下这一效果。 一、首先,我们...

  • 原生js拖拽效果

    最近新学了拖拽效果,没有好记性,只好用烂笔头记录一下了。首先讲讲拖拽的思路(只分析水平方向,垂直方向类似): 首先...

  • JavaScript实现图片和div拖拽

    今天需要一个图片拖拽功能,代码量小,就用原生JavaScript写吧! 我们拖拽的动作由这么一组流程:1、鼠标在图...

  • pygame里操作事件

    鼠标事件的应用 图片拖拽 画球 多个球一起动 动画效果

网友评论

    本文标题:web前端-原生鼠标拖拽效果

    本文链接:https://www.haomeiwen.com/subject/dkhxnttx.html