前几天看到一个帖子,lz想要这种效果——不需要鼠标拖动或者滚轮滚动,仅根据鼠标移动时所在的位置,使滚动条自动滚动.
今天正好有空写了这段,但是那个帖子找不到了。
贴代码出来给需要的同学参考参考。<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>AutoScrollDemo</title>
<script src="../jquery-1.4.2.min.js"></script>
<script>
$(function(){

$(document).mousemove(function(e){         
var xx=e.originalEvent.x||e.originalEvent.layerX||0;
var yy=e.originalEvent.y||e.originalEvent.layerY||0;

//首先获得鼠标位置坐标与滚动条2个值的差值T1 L1(即是相对窗口的坐标位置)
var T1=yy-$(document).scrollTop();
var L1=xx-$(document).scrollLeft();
//然后设置该两个差值的筏值 T1max T1min L1max L1min;
var T1max=$(window).height()*0.7;
var T1min=$(window).height()*0.3;
var L1max=$(window).width()*0.7;
var L1min=$(window).width()*0.3;
//当T1 大于 T1max 或者小于 T1min 时,触发滚动条动作,变化速度为 T1 与 筏值的差值(每秒) [滑动效果另议]
if(T1>T1max)$(document).scrollTop($(document).scrollTop()+T1-T1max);
if(T1<T1min)$(document).scrollTop($(document).scrollTop()+T1-T1min);
//同上,处理L1
if(L1>L1max)$(document).scrollLeft($(document).scrollLeft()+L1-L1max);
if(L1<L1min)$(document).scrollLeft($(document).scrollLeft()+L1-L1min);

}); 

})
</script>
</head>
<style>
div{ background-color:#CCCCCC; width: 2000px; height:3000px;}
</style>
<body>
<div id="div_mainframe"></div>
</body>
</html>