原生JS如何实现回到顶部效果?(详解)


当前第2页 返回上一页

现在回到顶部按钮的样式有了,接下来就是JS实现当点击该按钮时缓动回到顶部的效果,代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

window.onload = function(){

    var obtn = document.getElementById('btn');  //获取回到顶部按钮的ID

    var clientHeight = document.documentElement.clientHeight;   //获取可视区域的高度

    var timer = null; //定义一个定时器

    var isTop = true; //定义一个布尔值,用于判断是否到达顶部

 

    window.onscroll = function(){         //滚动条滚动事件

 

        //获取滚动条的滚动高度

        var osTop = document.documentElement.scrollTop || document.body.scrollTop;

 

        if(osTop >= clientHeight){  //如果滚动高度大于可视区域高度,则显示回到顶部按钮

            obtn.style.display = 'block';

        }else{         //否则隐藏

            obtn.style.display = 'none';

        }

 

        //主要用于判断当 点击回到顶部按钮后 滚动条在回滚过程中,若手动滚动滚动条,则清除定时器

        if(!isTop){

 

            clearInterval(timer);

        }

        isTop = false;

 

    }

 

    obtn.onclick = function(){    //回到顶部按钮点击事件

        //设置一个定时器

        timer = setInterval(function(){

            //获取滚动条的滚动高度

            var osTop = document.documentElement.scrollTop || document.body.scrollTop;

            //用于设置速度差,产生缓动的效果

            var speed = Math.floor(-osTop / 6);

            document.documentElement.scrollTop = document.body.scrollTop = osTop + speed;

            isTop =true;  //用于阻止滚动事件清除定时器

            if(osTop == 0){

                clearInterval(timer);

            }

        },30);

    }

}

那么到此,我们的回到顶部效果就可以实现了,可以拿到浏览器测试一下。其实回到顶部效果的实现方法不少,这里只是一种实现方案,以供参考!

更多返回顶部功能特效代码请访问:回到顶部代码 栏目

【相关推荐】

5款简洁的返回顶部特效代码(收藏)

html5精选特效代码分享(收藏)

推荐5款好用的在线悬浮QQ客服代码免费下载(精品)

推荐5款实用好看的网页悬浮二维码特效代码

以上就是原生JS如何实现回到顶部效果?(详解)的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

javascript中的打印方法有几种

http协议发展过程一览

javascript如何实现二叉树的创建和遍历?(代码示例)

javascript如何检测网络

javascript如何实现跳转到页面

canvas波浪效果的实现代码

localstorage存储读取json怎样实现

javascript的this的用法详解

javascript数组怎么删除所有元素

javascript创建元素的方法(代码)

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...