// JavaScript Document  回到顶部
function goTopEx(){
        var obj=document.getElementById("goTopBtn");        function getScrollTop(){
var xtop;
xtop = document.documentElement.scrollTop || document.body.scrollTop;
                return xtop;
}
        function setScrollTop(value){
if (document.body)
{
document.documentElement.scrollTop=value;
}
else
{
document.documentElement.body=value;
}
            }    
        window.onscroll=function(){getScrollTop()>0?obj.style.display="block":obj.style.display="none";} obj.onclick=function(){
            var gotop;
gotop=window.setInterval(scrollMove,10);
            function scrollMove(){
                    setScrollTop(getScrollTop()/3);
                    if(getScrollTop()<1)
{
window.clearInterval(gotop);
}

}
alert(gotop);
        }
    }在html里我这样调用的,但是在ie,firefox都会执行,在google浏览器里Onclick时没反应!
<DIV style="DISPLAY: none" id=goTopBtn><IMG border=0 src="{res file=images/toTop.png}"></DIV>
<SCRIPT type=text/javascript>goTopEx();</SCRIPT>

解决方案 »

  1.   

    应该是浏览器的兼容性问题:lz试试把xtop = document.documentElement.scrollTop || document.body.scrollTop;改成
    var de = document.documentElement;
    xtop=self.pageYOffset || ( de && de.scrollTop ) || document.body.scrollTop;
      

  2.   


    谢谢,我试了你的方法,还是不行。通过调试,我发现是
    gotop=window.setInterval(scrollMove,10);
                function scrollMove(){
    这个scrollMove函数在谷歌下不会执行,知道该怎么解决吗?谢谢!
      

  3.   

    obj.onclick=function(){
                var gotop;
                gotop=window.setInterval(function(){
                        setScrollTop(getScrollTop()/3);
                        if(getScrollTop()<1)
                        {    
                            window.clearInterval(gotop);
                        }
     
                },10);}
                alert(gotop);
            }这样试试~·
      

  4.   

    obj.onclick=function(){
                var gotop;
                gotop=window.setInterval(function(){
                        setScrollTop(getScrollTop()/3);
                        if(getScrollTop()<1)
                        {    
                            window.clearInterval(gotop);
                        }
     
                },10);
                alert(gotop);
            }用这个,刚才那个多了一个括号~·
      

  5.   

    不会啊,这个函数是可以执行的你在scrollMove加个alert试试
      

  6.   

    好久没来了,手痒所以写多了,LZ的问题确实是浏览器的兼容性问题另外: LZ代码里的“document.documentElement.body=value;”是神马?
    在chrome 和safari里面获取和设置scrollTop会有点问题,获取的时候只有用pageYOffset才能得到正确的值,设置的时候要用document.body.scrollTop = n,但这两个浏览器又是认document.documentElement的,so...<!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=utf-8" />
    <title>无标题文档</title>
    </head>
    <body>
    <div style="height:1000px;"></div>
    <input type="button" id='a' />
    <div style="height:200px;"></div>
    <script type="text/javascript">
    (function(w, n) {
    function m(op) {
    var step = op.step || 10; //动画的帧频(ms)
    var time = op.time || 50; //动画的帧数
    var stime = 0;
    document.getElementById(op.handle).onclick = function() {
    var top = g();
    if(top > 0) {
    stime = 0;
    (function() {
    s(Math.ceil(t(stime, top, -top, time)));
    if(stime < time) {
    stime++;
    setTimeout(arguments.callee, step);
    }
    })();

    }
    };
    }
    //缓动算法
    function t(t, b, c, d) {
     return -c *(t/=d)*(t-2) + b;
    }
    //获取页面scrollTop
    function g() {
    //ff / chrome safari / ie
    return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
    }
    //设置页面scrollTop
    function s(n) {
    //chrome safari / ff / ie
    (/(chrome|version)/i).test(navigator.userAgent)? document.body.scrollTop = n : document.documentElement? document.documentElement.scrollTop = n : document.body.scrollTop = n;
    }

    w[n] = m;
    })(window, 'sbsbbsbs');//调用
    sbsbbsbs({handle: 'a', time: 30});
    </script>
    </body>
    </html>
      

  7.   

    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <p>1</p>
    <a href="#top" onclick="window.scrollTo(0,0);return false;">返回顶部
    </a>
      

  8.   

    返回顶部,用热点多好啊!!!楼主的代码,错的最严重的是这行
      document.documentElement.body=value;
      

  9.   


    你好,经测试,你的代码在各浏览器都没有问题,可以达到顶部。可是我用一个浮动的固定div去代替你的Input,实现:当网页向下滚动到大于某个像素时才显示这个div,等向上小于某个值时就隐藏起来,请帮忙实现,我想这样就完美了。谢谢!input 改为:<DIV id=goTop><IMG border=0 src="{res file=images/toTop.png}"></DIV>
    goTop的css
    #goTopBtn {
    POSITION: fixed; WIDTH: 48px; HEIGHT: 48px; BOTTOM: 15px; RIGHT: 15px; CURSOR: pointer;
    }#goTopBtn:hover {
    FILTER: alpha(opacity=60); opacity: 0.6; -moz-opacity: 0.6
    }
      

  10.   

    原理如下:
    window.scroll = function(){
        //scrollTop >  #goTopBtn的高度? #goTopBtn显示 : #goTopBtn隐藏;
    }
      

  11.   

    好了,多谢你的施救,我把最OK的,兼容多浏览器,滚屏到300像素时才显示的“回到顶部代码”发出来,供大家参考:
    toTop.js/**
    @ 回到页面顶部  
    @ 2011-12-16
    **/
    (function(w, n) {
        var obj=document.getElementById("goTopBtn");
        function m(op) {
            var step = op.step || 10; //动画的帧频(ms)
            var time = op.time || 50; //动画的帧数
            var stime = 0;
            document.getElementById(op.handle).onclick = function() {
                var top = g();
                if(top > 0) {
                    stime = 0;
                    (function() {
                        s(Math.ceil(t(stime, top, -top, time)));
                        if(stime < time) {
                            stime++;
                            setTimeout(arguments.callee, step);
                        }
                    })();
                    
                }
            };
        }
        //缓动算法
        function t(t, b, c, d) {
             return -c *(t/=d)*(t-2) + b;
        }
        //获取页面scrollTop
        function g() {
            //ff / chrome safari / ie
            return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
        }
        //设置页面scrollTop
        function s(n) {
            //chrome safari / ff / ie
            (/(chrome|version)/i).test(navigator.userAgent)? document.body.scrollTop = n : document.documentElement? document.documentElement.scrollTop = n : document.body.scrollTop = n;
        }    
        
    window.onscroll=function(){g()>300?obj.style.display="block":obj.style.display="none";}    w[n] = m;
    })(window, 'gomallTop');//调用   time 为时间
    gomallTop({handle: "goTopBtn", time: 10}); 
    html代码:
    <DIV id=goTopBtn style="display:none"><IMG border=0 src="{res file=images/toTop.png}"></DIV>
    <script type="text/javascript" src="toTop.js" charset="utf-8"></script>
    变量自己改吧。
      

  12.   

     function getScrollTop() {
                    //return document.documentElement.scrollTop;
    return document.documentElement.scrollTop+document.body.scrollTop;
                }
                function setScrollTop(value) {
                    //document.documentElement.scrollTop = value;
    document.documentElement.scrollTop+document.body.scrollTop;
                }
    这样既可
      

  13.   


    <!DOCTYPE HTML>
    <html>
     <head>
      <title>用jQuery实现最人性化的返回顶部跳转效果</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style>

    #back-to-top{
    position:fixed;
    bottom:100px;
    right:10px;
    }
    #back-to-top a{
    text-align:center;
    text-decoration:none;
    color:#d1d1d1;
    display:block;
    width:30px;
    /*使用CSS3中的transition属性给跳转链接中的文字添加渐变效果*/
    -moz-transition:color 1s; 
    -webkit-transition:color 1s;
    -o-transition:color 1s;
    }
    #back-to-top a:hover{
    color:#979797;
    }
    #back-to-top a span{
    background:#d1d1d1;
    border-radius:6px;
    display:block;
    height:33px;
    width:30px;
    background:#d1d1d1 url(l_top.jpg) no-repeat center center;
    margin-bottom:5px;
    -moz-transition:background 1s;
    -webkit-transition:background 1s;
    -o-transition:background 1s;
    }
    #back-to-top a:hover span{
    background:#979797 url(l_top.jpg) no-repeat center center;
    }
      </style>
      <script type="text/javascript" src="jquery-1.7.2.js"></script>
      <script type="text/javascript">
    $(document).ready(function(){
    //首先将#back-to-top隐藏
    $("#back-to-top").hide();
    //当滚动条的位置处于距顶部100像素以下时,跳转链接出现,否则消失
    $(function () {
    $(window).scroll(function(){
    if ($(window).scrollTop()>100){
    $("#back-to-top").fadeIn(1500);
    }
    else
    {
    $("#back-to-top").fadeOut(1500);
    }
    });
    //当点击跳转链接后,回到页面顶部位置
    $("#back-to-top").click(function(){
    $('body,html').animate({scrollTop:0},1000);
    return false;
    });
    });
    });
      </script>
     </head>
    <body id="top">

    <div style="width:980px;height:800px;border:1px solid #dcdcdc"></div>
    <p id="back-to-top"><a href="#top"><span></span></a></p>
    </body>
    </html>
      

  14.   

    我这段回到顶部的代码比较简单,但也有同样的问题。在IE下可以执行,但是用chrome就不起作用。
    // JavaScript Document
    function goTopEx(){
            var obj=document.getElementById("goTopBtn");
            function getScrollTop(){
                    return document.documentElement.scrollTop;
                }
            function setScrollTop(value){
                    document.documentElement.scrollTop=value;
                }    
            window.onscroll=function(){getScrollTop()>0?obj.style.display="":obj.style.display="none";}
            obj.onclick=function(){
                var goTop=setInterval(scrollMove,10);
                function scrollMove(){
                        setScrollTop(getScrollTop()/1.1);
                        if(getScrollTop()<1)clearInterval(goTop);
                    }
            }
        }<body style="text-align:center"><DIV style="DISPLAY: none" id=goTopBtn><IMG border=0 src="images/gototop.png"></DIV>
    <SCRIPT type=text/javascript>goTopEx();</SCRIPT>
    </body>