代码:
自动滚动屏幕代码如下:<script language"javascript">
var currentpos,timer;
function initialize()
{
timer=setInterval("scrollwindow()",10);
}
function sc(){
clearInterval(timer);
}
function scrollwindow()
{
currentpos=document.body.scrollTop;
window.scroll(0,++currentpos);
if (currentpos != document.body.scrollTop)
sc();
}
document.onmousedown=sc
document.ondblclick=initialize
</script>拖动屏幕代码如下:
<SCRIPT>
var old_y=0;  //记录鼠标按下时的Y轴位置
var yn=0;  //用于记录鼠标状态
function moveit()
{
if(yn==1 &&  event.button==1)  //如果鼠标左键按下就移动页面
document.body.scrollTop=(old_y-event.clientY); //移动页面
}
function downit()
{old_y=event.clientY+document.body.scrollTop; //记住鼠标按下时的Y轴位置
yn=1; //用于记住鼠标已按下
}function upit()
{yn=0;}  //记住鼠标已放开document.onmouseup=upit; //鼠标放开时执行upit()函数
document.onmousedown=downit; //鼠标按下时执行downit()函数
document.onmousemove =moveit; //鼠标移动时执行moveit()函数
</SCRIPT>目的:
我想实现双击自动滚动屏幕浏览,单击一次滚动屏幕停止,并开始执行拖动操作。
试验:
二个JS代码,同时放入一HTM页面里。1、按住可以往上拖动,也可以往下拖动。2、双击可以自动向下滚动,同时,按住也可以往上拖动,也可以往下拖动。但是:第2条。单击无法停止滚动,如果继续双击。滚动会加速度。,在双击。还会加速度。。此时,只有按F5刷新键,才会停止滚动。页面停留在最后滚动到的位置。
写在最后:请求帮助,我该如何修改出这个功能。。谢谢

解决方案 »

  1.   

        <script>
    var currentpos,timer;
    function initialize()
    {
    timer=setInterval("scrollwindow()",10);
    }function scrollwindow()
    {
    currentpos=document.body.scrollTop;
    window.scroll(0,++currentpos);
    if (currentpos != document.body.scrollTop)
    sc();
    }document.ondblclick=initialize
    var old_y=0;  //记录鼠标按下时的Y轴位置
    var yn=0;  //用于记录鼠标状态
    function moveit()
    {
    if(yn==1 &&  event.button==1)  //如果鼠标左键按下就移动页面
    document.body.scrollTop=(old_y-event.clientY); //移动页面
    }
    function downit()
    {
    clearInterval(timer);
    old_y=event.clientY+document.body.scrollTop; //记住鼠标按下时的Y轴位置
    yn=1; //用于记住鼠标已按下
    }function upit()
    {yn=0;}  //记住鼠标已放开document.onmouseup=upit; //鼠标放开时执行upit()函数
    document.onmousedown=downit; //鼠标按下时执行downit()函数
    document.onmousemove =moveit; //鼠标移动时执行moveit()函数</script>
      

  2.   

        <script>
    var currentpos,timer;
    function initialize()
    {
    timer=setInterval("scrollwindow()",10);
    }
    function sc(){
    clearInterval(timer);
    }
    function scrollwindow()
    {
    currentpos=document.body.scrollTop;
    window.scroll(0,++currentpos);
    if (currentpos != document.body.scrollTop)
    sc();
    }
    document.onmousedown=sc
    document.ondblclick=initialize
    var old_y=0;  //记录鼠标按下时的Y轴位置
    var yn=0;  //用于记录鼠标状态
    function moveit()
    {
    if(yn==1 &&  event.button==1)  //如果鼠标左键按下就移动页面
    document.body.scrollTop=(old_y-event.clientY); //移动页面
    }
    function downit()
    {
    sc();
    old_y=event.clientY+document.body.scrollTop; //记住鼠标按下时的Y轴位置
    yn=1; //用于记住鼠标已按下
    }function upit()
    {yn=0;}  //记住鼠标已放开document.onmouseup=upit; //鼠标放开时执行upit()函数
    document.onmousedown=downit; //鼠标按下时执行downit()函数
    document.onmousemove =moveit; //鼠标移动时执行moveit()函数</script>
      

  3.   

    谢谢。。CJ205。。突然又有一个问题。。我能不能通过按钮或者超连接实现控制滚动的速度。timer=setInterval("scrollwindow()",10);点击连接<a href="#" timer=10 >速度改为10</a>
    <a href="#" timer=25 >速度改为25</a>
    <a href="#" timer=50 >速度改为50</a>请问。这样可以实现吗?
      

  4.   

    可以实现timer=setInterval("scrollwindow()",10); ==> 这个10换成一个全局变量。假设为tmp
    var tmp = 10然后按钮事件绑定
    <a href="javascript:tmp=50;" timer=50 >速度改为50</a>
      

  5.   

    对不起。这两天有事。没上来。。帮我看看。var currentpos,timer;
    function initialize()
    {
    timer=setInterval("scrollwindow()",tmp);
    var tmp = 10;
    }
    我按着你说的这么改了。可是双击只动一小下就不动了。。怎么办呢?
      

  6.   

    var currentpos,timer;
    var tmp = 10;
    function initialize()
    {timer=setInterval("scrollwindow()",tmp);
    }
    放全局去
    tmp
      

  7.   

    等下一这个<a href="javascript:tmp=50;">速度改为50</a>好像不对。。我点击直接打开了一个新窗口里显示50
      

  8.   

    <a href="javascript:tmp=50;">速度改为50</a>
    ==>
    <a href="#" onclick="javascript:tmp=50;">速度改为50</a>这样试试