页面点击按钮返回顶部

 

若无具体要求,推荐使用第三种方法

 

 

1.有缓冲且按钮的显示隐藏需要判断滚动条位置

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        #btn {
            position: fixed;
            bottom: 0;
        }

    </style>
</head>
<body style="height: 10000px">
<a href=" " id="btn" style="display: none">回到顶部</a >
<script>
    window.onload = function(){
        var btn = document.getElementById('btn');
        // 获取视界高度;
        var winH = document.documentElement.clientHeight;
        // 定义计时器;
        var timer = null;
        // 定义是否抵达顶部布尔值判断;
        var isTop = true;
        // 设置滚动事件;
        window.onscroll = function(){
            var toTop = document.body.scrollTop || document.documentElement.scrollTop;
            // 判断是否到了第二屏,若是,显示按钮;
            if (toTop >= winH) {
                btn.style.display = 'block';
            }else{
                btn.style.display = 'none';
            };
            // 判断是否抵达顶部,若否,停止计时器;
            if (!isTop) {
                clearInterval(timer);
            };
            // 重置布尔值判断;
            isTop = false;
        }
        // 设置按钮单击事件;
        btn.onclick = function(){
            // 设置计时器,50毫秒间隔;
            timer = setInterval(function(){
                var toTop = document.body.scrollTop || document.documentElement.scrollTop;
                // 设置速度,用等式而不用具体数值是为了产生缓动效果;
                var speed = Math.ceil(toTop/5);
                // 作差,产生缓动效果;
                document.documentElement.scrollTop = document.body.scrollTop = toTop - speed;
                // 重置布尔值判断;
                isTop = true;
                // 判断是否抵达顶部,若是,停止计时器;
                if (toTop == 0) {
                    clearInterval(timer);
                };
            },50);
        }
    }
</script>
</body>
</html>

 2.点击无缓存跳到页面顶部:

①使用HTML的锚标记:唯一的缺点就是样式不怎么样,而且会在url里显示这个锚标记
<a name="top" id="top"></a>放置位置在只要靠近顶部即可

页面底部放置:<a href="#top" target="_self">返回顶部</a>

<a name="top"></a>
...
<div style="position: fixed; top: 529px; left: 1269px; display: block;">
        <a href="#" title="回到顶部">
            <img src="http://static.blog.csdn.net/images/top.png" alt="TOP"></a>
    </div>

 

②Javascript Scroll函数:<a href="javascript:scroll(0,0)">返回顶部</a>

scroll第一个参数是水平位置,第二个参数是垂直位置,比如要想定位在垂直50像素,scroll(0,50)即可

 

 3.有缓存但按钮一直位于底部(绝对位置)

<a onclick="pageScroll()" class="return-top">返回顶部</a>
//写到页面底部,就是</body>前

 function pageScroll()
    {
        //把内容滚动指定的像素数(第一个参数是向右滚动的像素数,第二个参数是向下滚动的像素数)
        window.scrollBy(0,-100);
        //延时递归调用,模拟滚动向上效果
        scrolldelay = setTimeout('pageScroll()',100);
        //获取scrollTop值,声明了DTD的标准网页取document.documentElement.scrollTop,否则取document.body.scrollTop;因为二者只有一个会生效,另一个就恒为0,所以取和值可以得到网页的真正的scrollTop值
        var sTop=document.documentElement.scrollTop+document.body.scrollTop;
        //判断当页面到达顶部,取消延时代码(否则页面滚动到顶部会无法再向下正常浏览页面)
        if(sTop==0) clearTimeout(scrolldelay);
    }

 积累拓展:

scrollTo() 方法可把内容滚动到指定的坐标,所以也可以这样写

 

<a href="Javascript:window.scrollTo(0,0)">返回顶部</a>
//等价于
<a href onclick="window.scrollTo(0,0);">返回顶部</a>

 

scrollBy() 方法可把内容滚动指定的像素数(右,下);

setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式(记时调用)

clearTimeout() 方法可取消由 setTimeout() 方法设置的 timeout

scrollTop() 方法返回或设置匹配元素的滚动条的垂直位置

计时调用方法可用于计时器,代码如下:(一秒加一,点击停止后计时终止)

 

<html>
<head>
<script type="text/javascript">
var c=0
var t
function timedCount()
{
document.getElementById('txt').value=c
c=c+1
t=setTimeout("timedCount()",1000)
}
function stopCount()
{
clearTimeout(t)
}
</script>
</head>
<body>
<form>
<input type="button" value="开始计时!" onClick="timedCount()">
<input type="text" id="txt">
<input type="button" value="停止计时!" onClick="stopCount()">
</form>
<p>
请点击上面的“开始计时”按钮。输入框会从 0 开始一直进行计时。点击“停止计时”可停止计时。
</p>
</body>
</html>

 

 

一、使用锚点链接

毫无疑问,使用锚点链接是一种简单的返回顶部的功能实现。该实现主要在页面顶部放置一个指定名称的锚点链接,然后我们在页面下方放置一个返回到该锚点的链接,用户点击该链接即可返回到该锚点所在的顶部位置。

示例代码如下:

<!-- 定义一个名称为top的锚点链接 -->
<aname="top"></a>

<!-- 这里是网页主体内容,此处省略 -->


<!-- 返回页面顶部top锚点的链接 -->
<ahref="#top">返回顶部</a>

值得注意的是,在现代浏览器中,如果浏览器找不到指定的锚点(例如top),浏览器将会尝试跳转到id为top的HTML元素的起始位置。因此,我们也可以在头部放置一个id为top的HTML元素,遗憾的是,并不是所有的浏览器——尤其是某些浏览器的旧版本,都兼容这种行为。

二、使用js函数scrollTo()

当然,我们还可以利用JavaScript为我们提供的函数scrollTo(x, y)来实现返回到页面顶部的功能。scrollTo函数可以滚动到指定坐标(x, y)处的内容。我们将坐标设定为(0, 0)即可起到返回顶部的作用。

<ahref="javascript:scrollTo(0,0);">返回顶部</a>

三、使用js操作DOM样式

此外,我们还可以使用js将body或html等元素的scrollTop属性设置为0,即可滚动到页面的顶部。我们一般使用jQuery来实现上述代码。

// 以下三种方式均可实现返回页面顶部
$(window).scrollTop(0);

$('body').scrollTop(0);

$('html').scrollTop(0);

运行代码

此外,我们还可以使用jQuery的动画效果函数animate()来实现平滑滚动到页面顶部的动画效果。

// 在500毫秒内平滑滚动到页面顶部
$('body').animate({scrollTop:0},500);

 

 

猜你喜欢

转载自570109268.iteye.com/blog/2380715