这种简单的小功能思路很清晰,就是检测滚动条是不是在顶部,不是的话就显示返回顶部按钮,是的话就把它隐藏。

滚动条监测在新版的主流浏览器中是这样实现的:

document.body.scrollTop

如果想要兼容IE,那么可以加入下面这句完成:

document.documentElement.scrollTop

上面就是最主要的代码了,但是想要实现实时的监测滚动条的位置,我们还需要一个window.onscroll才能完成,这样不断下拉会不断刷新滚动条的位置。

说道这里,你大概已经可以试着写出返回顶部这个功能了。

贴出我的代码吧:

HETM

<a class="back2top" style="display:none;"></a>

CSS

.back2top {z-index:99;background:#000;width:36px;height:36px;display:block;position:fixed;right:20px;bottom:20px;cursor:pointer;border-radius:2px;opacity:.6;}
.back2top:before {content:"";position:absolute;right:8px;top:10px;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:15px solid #fff;}

JavaScript

window.onscroll=function(){
    var goTop = document.getElementsByClassName("back2top");
    if(goTop.length>0){
        goTop[0].style.display = document.documentElement.scrollTop >= 200 || document.body.scrollTop >= 200 ? 'block':'none';
        goTop[0].onclick=function(){
            document.body.scrollTop=0;
            document.documentElement.scrollTop=0;
        }
    }
}

getElementsByClassName可能不兼容IE8,如果想向下兼容,可以尝试用getElementById就可以了。

标签: js, javascript, 原生js

已有 114 条评论

  1. c c

    这主题不用jQuery太爽了!

    1. zepto跟jquery一个性质

  2. Ace Ace

    这主题不用jQuery太爽了!

  3. 哥你这主题怎么设置侧边栏啊

  4. 祝工作顺利

  5. loy loy

    换主题了?之前那个新主题不发布了吗?

  6. 学习了,mark一下,你的博客不错!

    1. 好久没见你呀

      1. 有快2年没怎么弄博客了……

  7. 访问速度超级快~~~

  8. 荐洋机部落主要撰写测评国内外主机、VPS,成立一来一直秉承免费、共享、分享的经受,致力于打造国内专业的国外主机推荐测评网站。每日更新原创文章,希望友情链接。

  9. 主题大爱啊,坐等博主完善,随小民已入typecho党,但架不住主题好。
    ps:背景做点灰色可好,白色眼睛累

    1. 这是wp主题

      1. 不要在意这些,主题喜欢没办法,入WP党也是极好的

    2. 眼睛累,9成是因为你显示器的问题。换个显示器吧,伤眼。。。。估计是对比度或者亮度太高了

  10. 路过此地,喝杯茶再走,O(∩_∩)O~ 有空来找内涵妹 neihanmei.cn 聊聊呗

  11. 好东西!

  12. c c

    秋空博客关闭,烦请更换友链:
    8moe(http:/(过审)/8moe.com)
    造成麻烦深表歉意&致谢!

    1. c c

      感谢o(^▽^)o
      能不能帮我把名字改成“8moe”?
      顺便,新主题没谁了……

      1. 改好了。话说你现在留言的地址还是qiukong

        1. c c

          居然有点习惯了……(´Д` )

      2. 能不能不要用无效的邮箱。。。我会收到退信。。。

        1. c c

          这邮箱真是我的……估计主机不相信

          1. 你为什么不留8moe的网址

            1. c c

              那网站不是我个人在做,以后打算搞成个综合动漫社区。
              慢慢我也该淡出建站圈,退休回家画萝莉了23333

            2. c c

              其实关站更大原因是下定决心脱离技术行业。
              前一段时间查出了肾结石、肠炎、胃炎,大多和现在的熬夜有关。

              1. 不会吧,那我问题多的都不敢去查,有一个脱离圈子的,唉- -

          2. 现在好了

  13. 你又换皮!要求跟上!

  14. 加个缓冲会更好

  15. 除了首页的大图打开了三分钟之外,毫无槽点。

    1. 哈,图省事儿没压缩也没传到主机里,现在好点了,压缩了一下,也放到主机上了。

  16. 吕

    其他平台没有更新程序,大神能否把现在的代码发我 不慎感激 2929691562@qq.com

  17. 等了两天没等到更新主题啊。。。

    1. 可以了,现在就去后台去更新吧。

      1. 吕

        后台现在能更新吗???

        1. 什么?iDevise主题吗?可以更新。

          1. 吕

            iDevise主题 更新后还是单栏的那种啊 ,文章列表没有图片 ,还是发布主题截图的样式哦

            1. 方便留网址么,不方便的话可以直接回复本邮件

            2. 你好,iDevise跟本站现用主题不是同一款。且iDevise的维护已经停止了,在保证能用的前提下,主题不会再新增任何功能和改变。

              如果喜欢本站主题,可以持续关注一段时间,本站所有主题都会不定期以免费或付费的方式放出,届时欢迎你前来支持。

  18. 新主题有发布么? 还在用着你之前发布的那款单栏主题~:)

    1. 可以给我一个晚上的时间吗,今天下班后我就把之前的主题完善好,你可以加我QQ,做好后第一时间发给你。

      邮箱联系我获取QQ号码。

      1. 邮件已发。

  19. 请问评论头像是怎么显示的?我的忘了是不是被自己设置了还是怎么回事。。。

    1. 去Gravatar设置

      1. 你好,请问如何去掉博客中的个人说明呢?就是文章末尾跟评论之间的两条白线中内容:http://www.virgoer.com/archives/1169 麻烦看一下,谢谢。还有,请问你的图片是怎么做到这样的排版的?https://www.idevs.cn/2016/3669.html,我也会贴图,但是贴出来都是原图大小,排版不好看,求指点。

        1. 如果会html,可以在后他修改主题,或者省事点直接用css隐藏掉。

          贴图的问题,还是前提是会html,手动插入图片,用div包裹img标签,div的class分别是class="img img_1"、class="img img_2"、class="img img_3"

          比如:

          <div class="img img_2">
          <img src="https://www.idevs.cn/wp-content/uploads/DSC_3178.jpg">
          <img src="https://www.idevs.cn/wp-content/uploads/DSC_3171.jpg">
          </div>

  20. 返回顶部直接做个井号链接不就可以了麽。

    1. 还要控制它显示和隐藏呢

  21. 炒鸡喜欢这个网站现用的主题,不准备发布吗。佷想要嘞。

    1. 会发布的,还没收尾

  22. Yook Yook

    看到页脚版权上是有着Pro字样 有种不好的预感:这特么是天空团的收费主题啊

    1. 喜欢嘛,我为你这个预言家打5折。

  23. 在拿博主的idevise主题改成Desnote-pro主题哦?手动斜眼.jpg 博主不介意吧。溜了版权在底部

    1. 仅供自用就不介意,但是还是有很多话要说:

      1、别人仿我主题都是仿之前就联系好,你都改好了再告诉我,有意思么

      2、版权去了掉链接,你以为发免费主题就是为了那几行字么。

      3、别人都是拿我主题努力改成自己的Style,你为什么总是盯着我的主题不放。

      算了,努力告诉自己要心宽,想咋整咋整吧,自用就行。

      1. 呃…… 这样的话,那我换掉主题吧。

        1. 我的底线是仅供自用,不要外泄,谢谢配合

      2. 还有我几句话想说。
        1.我为什么现在联系,因为我是凌晨才改的。
        2.版权问题是因为我刚上传到网站上测试。而且还没改完还在修改当中。
        3.虽然说也是仿你现在的主题。但是我是选择自己喜欢的模块进行仿。
        接着讲3.我为什么仿你现在的主题。不就是因为喜欢你的风格才会选择仿吗?真是很奇怪哎。

        1. 已经添加了版权超链接

        2. 可是DesNote-Pro我是要付费放出的主题,角色互换一下,你现在什么感受呢?

          我的话可能过激了一些,但是心里还是不舒服的。

          非常感谢你对我博客的关注,也希望你能理解。

          其实,如果你提前联系就可以避免很多问题了,在此之前也有不少人要仿或移植我其它主题,我很少有不答应的情况,甚至会提供技术支持,只是这次不一样。

          1. 我知道你的感受。仿主题,被仿的那方的确会很不爽。我懂的。我会慢慢把主题改成别的样式。

          2. 对了,能交换个友链吗?....

            1. 你博客怎么了

              1. 我正在手动升级4.5 后台自动升级不了。 这个主题我是基于4.5改的。导致我线上的4.2没法正常用,会有bug

              2. 已经升级成功了,可以正常访问了。

              3. Tokin,换友链吗?首页的

  24. 你的博客是怎么把代码放上来的啊?

    1. 代码要用code标签包裹起来,你可能需要学习一下如何使用富文本编辑器

      1. 谢谢分享、、、、

  25. Ace Ace

    我已经跟不上你的步伐了...

  26. 新主题不错呦

    1. 会发布嘛,啥时候能用尼

  27. 新主题的动画特效真多,好评

    1. 这动画还多呀,我都很克制了,有些地方不加动画会很怪异

      1. 用的动画比较合适,过渡挺自然的,我见有的站动画真的过多了使人产生厌倦感(也与用的地方不合适有关)。不过返回顶部怎么没动画了?

        1. 我的域名“被”备案了,有什么好的办法解决么

          1. IO域名,一个字服!我查了下貌似需要注销你域名现在的备案,比较麻烦的赶脚:
            1.去到http://www.miibeian.gov.cn/,不用登陆,直接在公共查询处查询该域名已备案信息,把详细信息抄录下来;
              2.在http://www.miibeian.gov.cn/ 首页公告栏里,查询该域名备案号所属管理局电话;
              3.致电该管理局,阐述事由;
              4.准备材料:域名注册证书(向你的域名注册商索取)、身份证复印件、域名备案注销申请(自己写明事由、该域名已备案信息、姓名、联系方式);
              5.将准备好之材料传真至该域名管理局;
              6.等候处理结果,一般24小时内即可办理完毕。

            不如干脆不要备案算了。可以考虑下换日本VPS。。。我现在在用5美元一月的Vultr,用OneinStack LNMP建站。。如果愿意可以戳下我的AFF: http://www.vultr.com/?ref=6910497

            1. 5刀/月,我会觉得贵诶。。。而且放着阿里云不用,我觉得很浪费

              1. 是啊,略贵,主要是现在用优惠码可以PayPal充5美元送20美元。。相当于免费用了

                1. 哭瞎,满打满算用5-7个月?我记得新注册有10刀?

  28. 看看

  29. 不错

  30. 一个星期没来,你又变了。(滑稽)

    1. 我不是二狗- -

  31. 看了博主好多篇博文,真是有毅力!!
    自己马上要毕业了,感觉自己用不起阿里云主机了。
    于是乎,开始转静态博客hexo.......

    1. 可以考虑一下别的主机啊,hexo静态的玩的感觉不舒服,尤其是没有原生的评论系统

      1. 阿里云一年6月虚拟主机等你

        1. 虚拟主机不符合我爵士身份 :oops:

          1. :smile: 我是国王

  32. 咦,换域名啦,开始以为进错了,https://biji.io挺好记的

    1. 哈哈,就是看着眼晕

  33. 模版很简洁,不错。

  34. 好棒,居然换了io的域名,我一直也想要,不知道买啥,,,_

    1. 好像io域名是个低调的后缀,以为很冷门,注册的时候发现跟com一样,想到的都没了

  35. 恭喜博主获得一级品域名QAQ

    1. 可是是已备案的,心伤,还得想办法注销备案然后再自己备案

  36. 之前那个白色抬头的呢?改成现在这个样子了吗?好喜欢之前的,还在等着发布呢

    1. 白色的抬头?哪个部分?

  37. 澳门银座 澳门银座

    博主的文章写得非常棒 很喜欢

  38. 澳门银座 澳门银座

    顶顶顶顶顶顶顶顶顶顶 非常不错

  39. 澳门银座 澳门银座

    排版很好看,简单大方,个人很喜欢

  40. 为什么我这里是不管用的,返回顶部

  41. 为了省事我用了 jQ 写,其实也不错,就是要加载一个 jQ 库有点郁闷。

    1. jq很方便,我现在也用jq写- -

  42. JS写起来还是蛮好玩的 不过公司都是用JQ :neutral:

    1. 还是jq写起来顺手啊

  43. :idea: 楼主的代码在WordPress是如何插入的呀?

  44. 无论是JQ还是JS,我觉得都挺要命的。。。。 完全看不懂 :smile:

  45. 博主写的这个是直接返回没有缓动 :twisted:

    1. 不需要缓动,影响效率

      1. :arrow: 哈哈

  46. 请问博主现在用的这个是什么字体呀? :lol:

    1. 英文字体是EXO-2

      1. 收到,谢谢~ :mrgreen:

添加新评论