Mr丶冷文

文章 分类 评论
124 10 7608

站点介绍

冷文学习者(KEVINLU98.COM),记录一个北漂小码农的日常业余生活
友链申请地址(直接评论即可): 传送门

jQuery实现一个优雅的返回顶部

MR丶冷文 2021-09-27 1561 1条评论 技术学习 jsjquery

首页 / 正文
Freewind主题v1.5版本已发布,下载请移步Freewind 1.5,同时还有主题伴生插件Freewind Markdown,下载请移步 Freewind Markdown,有问题请在留言板,交换友链请直接在友链留言,我创建了一个主题交流群,有兴趣可以加下: 点此加入
报毒我说明一下,是因为我把主题的版权信息做了加密,其中用了eval,杀毒软件认为eval函数是一个危险的操作,这点介意的话请勿下载,我也没有强迫任何人去下载,也没有向大家收取一分钱的主题费用,所以也犯不着因为这些事情来喷我,喜欢就用,不喜欢就不用,就这么简单

发布于2022-10-28

前言

最近在完成Freewind主题V1.1版本的小升级,加了返回顶部的功能,索性就把实现整理成一篇博文发布出来供大家学习,效果如下:

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/20210927/bc31a129bb5f418995dac9e7f3453115.gif

主要功能

  • 在鼠标滚动超过一半屏幕高度时显示回顶部按钮,其它情况隐藏
  • 点击按钮回不是立刻回到顶部,有一个滚动的动画

设计思路

  • 设计出按钮位置和样式,并且将按钮不置为透明
  • 在鼠标发生滚动事件时做判断,如果滚动位置大于屏幕高度的一半,则显示回顶部按钮
  • 为按钮添加点击事件,点击时使用jQuery的动画组件做一个回顶部的动画

代码实现

第三方库

  • jquery
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
  • font-awesome
<link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">

按钮设计

我自己是写了个按钮组,有个QQ联系和回顶部,正常情况只显示QQ联系

  • html代码
<div id="bottom-btn-list">
    <a id="top-btn" href="javascript:void (0);"><i class="fa fa-arrow-up"></i></a>
    <a class="qq-btn"
       href="http://wpa.qq.com/msgrd?v=3&amp;uin=qq号&amp;site=qq&amp;menu=yes"
       target="_blank"><i class="fa fa-qq"></i></a>
</div>
  • 对应css样式
#bottom-btn-list {
    position: fixed;
    width: 40px;
    bottom: 50px;
    right: 10px;
}

#bottom-btn-list #top-btn {
    opacity: 0;
}

#bottom-btn-list a {
    margin-top: 5px;
    background-color: rgba(0, 0, 0, .3);
    display: block;
    text-align: center;
    height: 40px;
    line-height: 40px;
    color: #FFFFFF;
    font-size: 20px;
}

滚动判断是否显示按钮

$(window).scroll(function () {
  //滚动高度
  let scTop = $(window).scrollTop()
  //屏幕高度
  let height = $(window).height()
  if (scTop >= height * 0.5) {
    //利用jquery动画组件显示
    $("#top-btn").stop().animate({'opacity': '1'}, 500)
  } else {
    $("#top-btn").stop().animate({'opacity': '0'}, 500)
  }
})

按钮点击事件

$("#top-btn").on('click', function () {
  $('body,html').stop().animate({
    scrollTop: 0
  })
})

结束

是不是很简单呢!感谢您的阅读

评论(1)

  1. 小丑 游客 2021-12-08 12:38 回复

    支持一下

最新评论

  • 松鼠男

    1、后台设置上传站长头像提示:“请求上传接口出现异常”。 2、文章页面可以上传插图,但是下面组件里上传展示图也是提示“上传失败”

  • 松鼠男松鼠男

    上传头像和图片的时候显示上传接口出现问题。是啥情况。 另外,主题使用说明的地址失效了。

  • 游客1111

    学习

  • 杨老师

    h很好

  • RS-梦泽

    @MR丶冷文 我网站图标更新了,还望换一下,http://q.qlogo.cn/headimg_dl?dst_uin=2317113278&spec=640&img_type=jpg 就是那个梦泽博客,谢谢,已添加贵站(置顶了)

日历

2023年12月

     12
3456789
10111213141516
17181920212223
24252627282930
31      

文章目录

站点公告
Freewind主题v1.5版本已发布,下载请移步Freewind 1.5,同时还有主题伴生插件Freewind Markdown,下载请移步 Freewind Markdown,有问题请在留言板,交换友链请直接在友链留言,我创建了一个主题交流群,有兴趣可以加下: 点此加入
报毒我说明一下,是因为我把主题的版权信息做了加密,其中用了eval,杀毒软件认为eval函数是一个危险的操作,这点介意的话请勿下载,我也没有强迫任何人去下载,也没有向大家收取一分钱的主题费用,所以也犯不着因为这些事情来喷我,喜欢就用,不喜欢就不用,就这么简单
点击小铃铛关闭