码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript实现的回到顶部效果

时间:2014-07-16 18:12:40      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   java   color   使用   

参考自:http://www.imooc.com/learn/65

 

几乎所有的网站都会有回到顶部的功能,可以直接用锚点(#)实现,但是跳转的很生硬。

1、使用插件,我之前在介绍两个JQuery插件 — 滚动和轮播说过一个滚动插件,使用效果不错。

我在自己的小项目使用了:旅行笔记

2、原生的JS实现。

有两个点,一个是window 的滚动事件:window.onscroll,另一个是setInterval和clearInterval。

具体内容见代码,里面注释了。

window.onload = function() {
    var btn = document.getElementById(‘btn‘);
    var timer = null;
    var isTop = true;

    var clientHeight = document.documentElement.clientHeight;

    window.onscroll = function() {
        var osTop = document.documentElement.scrollTop || document.body.scrollTop; //滚动条高度,不同浏览器获取方式不同

        //控制回到顶部按钮的显示,如果滚动条的高度大于屏幕的高度就显示
        if(osTop >= clientHeight) {
            btn.style.display = ‘block‘;
        } else {
            btn.style.display = ‘none‘;
        }

        //在滚动过程中,用户若滑动鼠标滚轮即可停止滑动
        if(!isTop) {
            clearInterval(timer);
        }
        isTop = false;
    }

    btn.onclick = function() {
        //每隔30ms执行一个,每次的速度逐渐减小,成为一种缓动效果,越靠近顶部越慢。
        timer = setInterval(function() {
            var osTop = document.documentElement.scrollTop || document.body.scrollTop; //滚动条高度
            var iSpeed = Math.floor(-osTop / 6);
            document.documentElement.scrollTop = document.body.scrollTop = osTop + iSpeed;
            isTop = true;

            if(osTop == 0) {
                clearInterval(timer);
            }
        }, 30);

    }
}

 

 

JavaScript实现的回到顶部效果,布布扣,bubuko.com

JavaScript实现的回到顶部效果

标签:style   blog   http   java   color   使用   

原文地址:http://www.cnblogs.com/zjzhome/p/3847362.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!