鱼C论坛

 找回密码
 立即注册
查看: 1802|回复: 2

[庖丁解牛] 0 2 0 5 ★ J酷炫回到顶部&底部 |【补bug】

[复制链接]
发表于 2017-12-24 11:22:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2017-12-24 11:22 编辑


                               
登录/注册后可看大图


在之前的系列中,我们学习了最流行的JavaScript框架jQuery





Snip20171224_116.png


论坛上有一个小尴尬
Snip20171224_117.png

侧边栏不明显的回顶提示,如果像Md语言中有置顶的按钮放在文本中,那将大大提升阅读体验~
(推荐:第零篇 - 七招教你玩通Markdown! | 【撩妹、涨薪、装X神器】


言归正传:
素材包: 素材.zip (23.38 KB, 下载次数: 6, 售价: 1 鱼币)

文档结构:
Snip20171224_118.png


基本知识:
  1. $(window).height(); //用于获取浏览器显示区域(视口)的高度

  2. $(window).width(); //用于获取浏览器显示区域的宽度

  3. $(document.body).height(); //获取页面文档的高度

  4. $(document.body).width(); //获取页面文档的宽度

  5. $(document).scrollTop(); //获取垂直滚动条到顶部的垂直距离

  6. $(document).scrollLeft(); //获取水平滚动条到左边的水平距离

  7. $('元素id或class').offset(); //方法返回或设置匹配元素相对于文档的偏移(位置)。该方法返回的对象包含两个整型属性:top 和 left
复制代码





回到顶部


此特效是网页开发中出现频率非常高的一个功能,虽然有很多能实现该功能的插件。

只需要简单的引入效果就实现了,但实现原理一知半解,这次我来一点一点拆解开来。

要实现的效果:
        1.通过jQuery判断滚动条向下滚动的长度大于多少时显示【回到顶部】元素。

        2.点击实现“回到顶部”效果。


HTML基本结构:
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>鱼C-置顶&置底</title>
  6.     <!--引入css样式-->
  7.     <link rel="stylesheet" href="css/main.css">
  8.     <!--引入jq文件-->
  9.     <script src="js/jquery.min.js"></script>

  10. </head>
  11. <body>
  12. <!--模拟长页面结构-->
  13. <div style="width: 100%;height: 3333px;">
  14.     <!--p标签,放在页面顶部,防止代码不起作用(浏览器版本),仍可通过锚点操作实现-->
  15. <p id="pageTop"></p>

  16.     <!--定义按钮-->
  17. <div id="topButtonSize">
  18.     <!--通过a标签绑定,以防万一,先注释掉-->
  19. <!--<a href="#pageTop" class="goPageTop"></a>-->
  20.     <a class="goPageTop"></a>
  21. </div>

  22. </div>

  23. </body>
  24. </html>
复制代码


添加置顶区域-css样式:
  1. #topButtonSize{
  2.     position: fixed;
  3.     bottom: 66px;
  4.     right: 11px;
  5.     width: 50px;
  6.     height: 66px;
  7.     z-index: 9999;
  8.     background-color: #faa;
  9. }
复制代码

Snip20171224_119.png


现在可以添加按钮样式了,别忘了把背景色去掉。

添加按钮样式:
  1. .goPageTop{
  2.     background: url(../img/up.png) no-repeat 0 0;
  3.     width: auto;
  4.     height: 50px;
  5.     background-size:32px auto ;
  6.     display: block;
  7. }
复制代码

Snip20171224_120.png


调用图片,具体样式不解释了,毕竟是jq系列。

现在添加动作,完成单击图片,置顶:
  1. <script>
  2. //    回到顶部
  3.     $(function () {
  4.         $(window).scroll(function () {
  5.             if($(window).scrollTop() > 99)
  6.             {
  7. //                >99,渐变显示按钮区域
  8.                 $("#topButtonSize").fadeIn(100);
  9.             }
  10.             else{
  11.                 $("#topButtonSize").fadeOut(100);
  12.             }
  13.         })
  14.     })
  15. </script>
复制代码

Dec-24-2017 11-04-23.gif


B格有了,现在添加最重要的置顶:
  1. $(function () {
  2. //        单击按钮,通过动画设置页面高度在1s内变为0
  3.         $(".goPageTop").click(function () {
  4.             $('body,html').animate({
  5.                 scrollTop:0
  6.             },1000);
  7.             return false;
  8.         })
  9.     })
复制代码

Dec-24-2017 11-07-46.gif





判断是否到达底部或某元素


教程一开始的几个关于高度的jQuery知识点,总结出户:
  1. 浏览器显示区域的高度+垂直滚动条距离顶部距离<=网页的高度
复制代码


理解了这个公式,效果实现起来就简单很多了。

添加js:
  1. $(window).scroll(function () {
  2.         //网页文档高度
  3.         var bodyHeight = $(document.body).height();

  4. //        滚动条距离网页顶部的高度
  5.         var scrollHeight = $(document).scrollTop();

  6. //        页面可视化区域高度
  7.         var divHeight = $(window).height();

  8. //        向上取整来判断,没啥影响,分享下用法而已
  9.         if(Math.ceil(divHeight + scrollHeight) >= bodyHeight)
  10.         {
  11.             alert("大佬触底了!");
  12.         }
  13.     })
复制代码

Dec-24-2017 11-19-47.gif


利用上面的基础代码还可以扩展出一个效果更好的特效:
        滚动滚动条,到达底部的时候通过Ajax实现加载更多的效果,该效果其实是分页的另一种效果。

        欢迎自己脑洞实现~


最终源码: jQ回到顶部&amp;底部.zip (42.69 KB, 下载次数: 7, 售价: 10 鱼币)




如果喜欢,别忘了评分


                               
登录/注册后可看大图


这位鱼油,如果喜欢本系列Js帖子,请订阅 专辑&#9758;传送门)(不喜欢更要订阅

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-12-24 11:24:38 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-24 13:04:45 | 显示全部楼层

特么的很帅啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-17 07:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表