用Jquery,如何编写:一个外层DIV,内层一个DIV,如何让内层DIV当鼠标拖动就可移动但不可跑出外层DIV。

 我来答
shipingtuji
2014-07-23 · TA获得超过379个赞
知道小有建树答主
回答量:720
采纳率:55%
帮助的人:545万
展开全部

给你发个原生js代码的例子,其实就是简单的onmousedown-onmousemove-onmouseup,限制一下里面div的left和top值

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
#div1
{
width: 400px;
height: 300px;
background: #ccc;
position: relative;
}
#div2
{
width: 100px;
height: 100px;
background: red;
position: relative;
}
</style>
<script type="text/javascript">
window.onload=function()
{
var oDiv1=document.getElementById('div1');
var oDiv2=document.getElementById('div2');
var disX=0;
var disY=0;
//鼠标按下
document.onmousedown=function(ev)
{
var oEvent=ev||event;
disX=oEvent.clientX-oDiv2.offsetLeft;//鼠标当前的位置横坐标
disY=oEvent.clientY-oDiv2.offsetTop;//鼠标当前的位置纵坐标
//鼠标移动
document.onmousemove=function(ev)
    {
    var oEvent=ev||event;
var l=oEvent.clientX-disX;//重新计算鼠标的横坐标
var t=oEvent.clientY-disY;//重新计算鼠标的纵坐标
//限制里面div的left
if(l<0)
{
l=0;
}
//限制里面div的top
if(t<0)
{
  t=0;
}
//限制里面div的left
if(l>oDiv1.offsetWidth-oDiv2.offsetWidth)
{
l=oDiv1.offsetWidth-oDiv2.offsetWidth;
}
//限制里面div的top
if(t>oDiv1.offsetHeight-oDiv2.offsetHeight)
{
t=oDiv1.offsetHeight-oDiv2.offsetHeight;
}
//重新定位里面的div的位置
oDiv2.style.left=l+'px';
    oDiv2.style.top=t+'px';
    }
    //鼠标抬起,释放onmouseove事件
document.onmouseup=function(ev)
    {
    document.onmousemove=null
}
return false;
}


}
</script>
</head>
<body>
<div id="div1">
<div id="div2"></div>
</div>
</body>
</html>
百度网友ff644bca
2014-07-23 · TA获得超过268个赞
知道小有建树答主
回答量:143
采纳率:0%
帮助的人:37.2万
展开全部
alert($("#zhanghao").attr("name"));
追问

我是指里面这个DIV移动,不会跑出蓝色DIV外。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式