帮助我理解javascript(jquery)术语中的滚动
当你滚动时,你在改变某物的位置吗 如何更改滚动条的位置?专门用于匹配光标移动 我想做的是当我在窗口内单击并拖动光标时滚动窗口 例如: 我有一个400px乘400px的div,里面有一个900px乘900px的div。我想通过单击和拖动来滚动。注意,我不想移动inside div的位置(通过draggable使用jqueryui很容易实现),只想移动滚动位置。移动实际的div位置会弄乱我的其他javascript应用程序帮助我理解javascript(jquery)术语中的滚动,javascript,jquery,jquery-ui,scroll,Javascript,Jquery,Jquery Ui,Scroll,当你滚动时,你在改变某物的位置吗 如何更改滚动条的位置?专门用于匹配光标移动 我想做的是当我在窗口内单击并拖动光标时滚动窗口 例如: 我有一个400px乘400px的div,里面有一个900px乘900px的div。我想通过单击和拖动来滚动。注意,我不想移动inside div的位置(通过draggable使用jqueryui很容易实现),只想移动滚动位置。移动实际的div位置会弄乱我的其他javascript应用程序 任何帮助都将不胜感激!谢谢 这应该可以让你进行水平滚动。垂直方向与此类似,但
任何帮助都将不胜感激!谢谢 这应该可以让你进行水平滚动。垂直方向与此类似,但使用scrollTop()
var lastPageX;
$(文档).ready(函数(){
$(“#内部”).mousedown(函数(e){
//对拖曳板的引用
var-inner=$(这个);
//鼠标被按下的位置
lastPageX=e.pageX;
//附加鼠标移动侦听器
$(内部).mousemove(函数(e){
var diff=lastPageX-e.pageX;
//基于新光标位置滚动
$(“#外部”).scrollLeft($(“#外部”).scrollLeft()+diff;
lastPageX=e.pageX;
});
//删除鼠标移动侦听器
$(窗口).mouseup(函数(){
$(内部).unbind(“mousemove”);
});
返回false;
});
});
#外{
高度:400px;
宽度:400px;
背景色:石灰;
溢出:滚动;
}
#内在的{
高度:900px;
宽度:900px;
背景颜色:黄色;
}
Edit:在处理mousedown后返回false,以防止firefox抓取div。
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
var lastPageX;
$(document).ready(function() {
$("#inner").mousedown(function(e) {
// Reference to the drag pad
var inner = $(this);
// Position where mouse was pressed
lastPageX = e.pageX;
// Attach mouse move listener
$(inner).mousemove(function(e) {
var diff = lastPageX - e.pageX;
// Scroll based on the new curson position
$("#outer").scrollLeft($("#outer").scrollLeft() + diff);
lastPageX = e.pageX;
});
// Remove mouse move listener
$(window).mouseup(function() {
$(inner).unbind("mousemove");
});
return false;
});
});
</script>
<style>
#outer {
height: 400px;
width: 400px;
background-color: Lime;
overflow: scroll;
}
#inner {
height: 900px;
width: 900px;
background-color: Yellow;
}
</style>
</head>
<body>
<div id="outer">
<div id="inner">
</div>
</div>
</body>
</html>