鼠标拖拽div中的内容

div中的内容超出了div的高度出现滚动条,但是我不想用滚动条,想用鼠标拖动div中的内容,向上、向下、向左、向右拖动查看div中的内容例如:div中的内容已经超出了di... div中的内容超出了div的高度出现滚动条,但是我不想用滚动条,想用鼠标拖动div中的内容,向上、向下、向左、向右拖动查看div中的内容
例如:div中的内容已经超出了div的高度出现了滚动条,我拖动div中的内容向上,滚动条向下滚动,如果拖到最下边就不可以拖动了
展开
 我来答
前端小茶馆
2013-12-30 · TA获得超过962个赞
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:343万
展开全部

看看是不是你想要的,经测试:在chrome31,firefox25和IE8中能够正常使用,其他浏览器没有测试。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>在div内部拖动div</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
<style type="text/css">
*{margin:0; padding:0;}
.main{width: 400px;height: 400px;border: 1px solid #000;position: relative; left:30px; top:30px; overflow: hidden;}
.main:hover{cursor:move;}
.content{position: absolute; left:0; top:0; width: 600px;height: 600px;background: #7bb7fa; line-height:24px; -webkit-user-select:none; -user-select:none; -moz-user-select:none; -ms-user-select:none; -o-user-select:none;}
</style>
</head>
<body>
<div id="main" class="main">
<div id="content" class="content">
可以不可以在这下雨天
为你撑起伞
遮蔽那一片
乌云的伤感

可不可以就这样简单
轻轻地走在路边
听着秋雨的缠绵
说着天的那一边

可不可以在这时间
说说对你的思念
如秋雨般连成线
连成同心环

可不可以一直向前
手牵着手,永远
守着彼此的唯一不变
你就是我最唯一的爱恋

可不可以就这样结束孤单
……
</div>
</div>
</body>
</html>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
$(function(){
var isDown      = false;// 是否能够移动
var initialLeft = 0; // 鼠标摁下时的坐标
var initialTop  = 0;
var divLeft     = 0; // 鼠标摁下时内部div的坐标
var divTop      = 0;

$("#main").bind("mousemove", function(event){
var opposite = getOppositeCoor("main", event);
if(isDown){
var divl = divLeft+(opposite.left-initialLeft);
var divt  = divTop+(opposite.top-initialTop);
$("#content").css({'left':divl, 'top':divt});
}
});
$("#main").bind("mousedown", function(event){
isDown       = true;
var opposite = getOppositeCoor("main", event);
initialLeft  = opposite.left;
initialTop   = opposite.top;
divLeft      = parseInt($("#content").css("left"));
divTop       = parseInt($("#content").css("top"));
});
$("#main").bind("mouseup", function(){
isDown      = false;
initialLeft = 0;
initialTop  = 0;
divLeft     = 0;
divTop      = 0;
})
})

// 获取鼠标相对div的left和top值
function getOppositeCoor(id, event){
event = event || window.event;
var obj  = document.getElementById(id);
var left = obj.offsetLeft;  
var top  = obj.offsetTop;

var parObj = obj;
while(parObj = parObj.offsetParent){  
left += parObj.offsetLeft;  
}
parObj = obj;
while(parObj = parObj.offsetParent){  
top+=parObj.offsetTop;  
}

var OppositeCoorLeft = event.clientX-left+document.body.scrollLeft;
var OppositeCoorTop  = event.clientY-top+document.body.scrollTop;
return {'left':OppositeCoorLeft, 'top':OppositeCoorTop};
}
</script>
百度网友8ad6d4692
2014-01-14 · TA获得超过135个赞
知道小有建树答主
回答量:123
采纳率:100%
帮助的人:51.4万
展开全部
overflow:auto;
cursor:pointer;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
go一行
2013-12-30
知道答主
回答量:2
采纳率:0%
帮助的人:2793
展开全部
div中套用<textarea></textarea>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式