只能在方块内拖拽的案例

<!DOCTYPE html>
<html>
  <head>
  <meta charset="UTF-8">
  <title></title>
<style>

  #aa{
    width:500px;
    height:500px;
    border:red 1px solid;
    margin:100px auto;
    position:relative;
    /*padding:2px;*/
    }
  #dd{
    width:100px;
    height:100px;
    background:green;
    /*margin:2px;*/
    position:absolute;
  }
  </style>
</head>
<body>
  <div id="aa">
    <div id="dd"></div>
  </div>
</body>
</html>
<script>
  var $=function(id){
  return document.getElementById(id)
  }
  var aa=$("aa");
  var dd=$("dd");
  dd.onmousedown=function(ev){
    var ev=ev||window.event;
    var left=aa.offsetLeft
    var top=aa.offsetTop
    var x=ev.clientX-left-dd.offsetLeft;
    var y=ev.clientY-top-dd.offsetTop;
    document.onmousemove=function(ev){
      var ev=ev||window.event;

      dd.style.left=ev.clientX-left-x+"px";
      dd.style.top=ev.clientY-top-y+"px"
    if(ev.clientX-left-x<=0){
      dd.style.left=0+"px";
    }
    if(ev.clientY-top-y<=0){
      dd.style.top=0+"px";
    }

    if(ev.clientX-left-x>=aa.offsetWidth-dd.offsetWidth){
      dd.style.left=aa.offsetWidth-dd.offsetWidth+"px";
    }
    if(ev.clientY-top-y>=aa.offsetHeight-dd.offsetHeight){
      dd.style.top=aa.offsetHeight-dd.offsetHeight+"px";
    }

  }
  return false;
  }
  document.onmouseup=function(){
  document.onmousemove=null;
  }
</script>

原文地址:https://www.cnblogs.com/shangjun6/p/10375234.html

时间: 2024-10-13 14:27:22

只能在方块内拖拽的案例的相关文章

理解事件捕获。在限制范围内拖拽div+吸附+事件捕获

一.实现的效果是在限制范围内拖拽div+吸附+事件捕获. 这里需要理解的是事件捕获,这个事件捕获也是为了兼容div在拖拽过程中,文本不被选中这个问题. 如此良辰美景,拖拽也可以很洒脱哈.先看看图, 二.一步步的实现这个拖拽过程的几个要求 (一)拖拽起来 里面的边框是表示页面哦(我们的屏幕所能看到的东东). 获取移动距离的思路: 记录鼠标按下和鼠标抬起两次的坐标,然后相减,再加上div跟边缘之间的间距.就得到移动距离. 之前我也在这里困惑了,不明白为什么还要再加上offsetLeft.原因就是cl

可视区域内拖拽

视频地址:http://www.imooc.com/learn/60 看最下面的例子 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>慕课网-拖拽效果</title> <style type="text/css&qu

JS实现拖拽小案例

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>简单的拖拽</title> <link rel="stylesheet" href="../toolkit/reset.min.css"> <style> #box{ height: 200px

js实现可视化区域内拖拽

<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible"

拖拽复制案例

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin:0; padding:0; } #demo{ width:300px; height:400px; background-color: blue; position: absolut

JS Web API 拖拽对话框案例

<style> .login-header { width: 100%; text-align: right; height: 30px; font-size: 24px; line-height: 30px; margin-left: -100px; } ul, li, ol, dl, dt, dd, div, p, span, h1, h2, h3, h4, h5, h6, a { padding: 0px; margin: 0px; } .login { width: 512px; po

一步一步实现JS拖拽插件

js拖拽是常见的网页效果,本文将从零开始实现一个简单的js插件. 一.js拖拽插件的原理 常见的拖拽操作是什么样的呢?整过过程大概有下面几个步骤: 1.用鼠标点击被拖拽的元素 2.按住鼠标不放,移动鼠标 3.拖拽元素到一定位置,放开鼠标 这里的过程涉及到三个dom事件:onmousedown,onmousemove,onmouseup.所以拖拽的基本思路就是: 1.用鼠标点击被拖拽的元素触发onmousedown (1)设置当前元素的可拖拽为true,表示可以拖拽 (2)记录当前鼠标的坐标x,y

前端设计与实现,使用拖拽来调整交友对象的评分功能

我的一个交友网站,其独特的流程包括,用户通过搜索发现潜在对象,给潜在对象加关注和打分,使用获得2012诺贝尔经济奖的特殊匹配算法计算出相互匹配的对象并推荐給相关用户.在这里,对交友对象的评分功能是此网站的基础功能,其方便和平滑与否关系重大.本视频演示我的设计与实现. 页内拖拽 跨页拖拽 一次点击把目标用户放入一个缓存区,然后利用分页控制走到目的页面,再进行拖拽.好处是能够实现精确控制. 想想看,你会如何设计这一功能? 其他特点 精确和强大的筛选器,让用户随心所欲的控制筛选条件. 常用的筛选组合放

Html5拖拽复制

拖拽是一种常见的特性,即抓取对象以后拖到另一个位置. 在 HTML5 中,拖拽是标准的一部分,任何元素都能够拖拽. Html5拖拽非常常见的一个功能,但是大部分拖拽的案例都是一个剪切的过程, 项目中需要实现Html5拖拽复制的功能,Html5拖拽复制很简单,只需要在普通Html5拖拽的过程中做一点小小的改动即可. ps: 本篇博文为非首页文章,只是简单的笔记. 浏览器支持 Internet Explorer 9 Firefox Opera 12 Chrome Safari 5 v1.0代码部分