zoukankan      html  css  js  c++  java
  • 博客园装饰——(二)滚动到页面顶部或底部

    博客园装饰——(二)滚动到页面顶部或底部

    一、功能描述

    1.1 文字描述

    1. 当页面向下滚动一定距离时,向下滚动到底部的按钮以淡入的效果出现,并以固定定位显示。且滚动到一定距离(快接近所设置的底部)时,该按钮又会以淡出效果消失。

    2. 当页面向下滚动一定距离时,向上滚动到顶部的按钮以淡入的效果出现,并以固定定位显示。往上滚回原来出现的位置前,该按钮又会以淡出效果消失。

    1.2 图片效果展示

    滚动效果展示.gif

    二、代码展示

    2.1 html 部分

    <body>
    		<div class="totop" style="z-index: 100;"><span>↑</span></div>
    		<div class="tobuttom" style="z-index: 100;"><span>↓</span></div>
    		<!-- 
    			<p>文档内容</p>
                            <br />
                            <br />
                            <br />
                            <br />
                            <br />
                            <br />
                            <br />
                            <br />
                            <br />
                            <br />
    			上面这一段重复20遍,是为了让页面长度足够长而已
                            为了减少冗余,保证本文篇幅不会过大,采用以下缩写表示 
    		-->
        	
        	      (p{文档内容}+br*10)*20  
    	    
    </body>
    

    ​ 两个分别是向上滚动和向下滚动的按钮标签,以及为了增大页面长度使用的众多p和br标签

    2.2 CSS 部分

    <style type="text/css">
    			
    			.totop, .tobuttom{
    				75px;
    				height:75px;
    				border-radius: 50%;
    				background-color: pink;
    				opacity: 0.7;
    				position:fixed;
    				top:700px;
    				right:75px;
    				cursor: pointer;
    				display:none;
    				text-align: center;
    			}
    
    			.totop{
    				top:200px;
    			}
    			
    			.totop span, .tobuttom span{
    				display: inline-block;
    				color:white;
    				font:bold 50px/75px '华文彩云';
    				transform: scale(2,1);
    			}
    
    </style>
    

    对两个标签进行样式设置,以及定位,并保证一开始为不展示(即display:none;),还有按钮内部文字内容的样式设置

    2.3 JS 部分

    <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
    <script type="text/javascript">
    			$(function(){
    				// 获取两个滚动按钮元素
    				var toTop = $('.totop');
    				var toButtom = $('.tobuttom');
    				// 获取页面总高度,是为了能够尽可能的适应更多情况的页面,且更灵活
    				var height = $(document).height();
    				// console.log(height);
    
    				toTop.click(function(){
    					// scrollTop 的值,可以根据自己的需要调节,使页面向上滚动到自己预期的位置
    					$('html,body').stop().animate({'scrollTop':229},1500);
    				})
    
    				toButtom.click(function(){
    					// height - x ,'x' 可以根据自己的需要调节,使页面向下滚动到自己预期的位置
    					$('html,body').stop().animate({'scrollTop':height-1000},1500);
    				})
    
    				// 滚动事件
    				$(window).scroll(function(){
    					// 获取页面向上滚动的距离
    					var iNum = $(document).scrollTop();
    					// document.title = iNum;
    
    					// 根据自己的需要设置按钮的出现范围
    					if((iNum>=400)&&(iNum<=(height-2000))){
    						toButtom.fadeIn();
    					}
    					else{
    						toButtom.fadeOut();
    					}
    
    					if(iNum>=900){
    						toTop.fadeIn();
    					}
    					else{
    						toTop.fadeOut();
    					}
    				})
    				
    
    			})
    </script>
    

    ① 获取两个元素:向上、向下滚动按钮

    ② 获取页面高度

    ③ 设置点击事件以及滚动事件(详情与解释看代码的注释)

    三、小白教程(博客园装饰步骤)

    前言

    介于可能会有没学过前端的小白朋友看到此篇文章,所以博主在此献上小白教程。

    前提:先确保自己把各类权限给申请通过,再看本教程

    CSS 和 JS 文件下载地址:

    链接:https://pan.baidu.com/s/1ockPW-6RpyonNWp9D0dSIA
    提取码:wz8q

    3.1 将html部分代码复制到页首HTML

    页首html.png
    <div class="totop"><span>↑</span></div>
    <div class="tobuttom"><span>↓</span></div>
    

    3.2 CSS部分

    3.2.1 第一种方式:引入CSS文件(页首HTML内)

    1. 先上传css文件到自己的博客园(顺便把js也上传吧)
    文件上传.png
    1. 点击两个文件,分别复制他们的地址栏
    复制地址栏.png

    js文件的引入也是一样,如上图这样复制地址栏

    1. 页首HTML内引入刚刚上传的CSS文件," href "内就是文件地址
    CSS文件引入.png
    <link rel="stylesheet" type="text/css" href="你的博客园上传的CSS文件的地址">
    

    刚刚复制的地址,粘贴进href

    3.2.2 第二种方式:直接复制CSS代码(不推荐)

    CSS文件引入2.png

    为什么说不推荐呢?

    首先这种方式,肯定简单快捷,但如果CSS代码都往这里塞的话,就会越来越长,不方便查阅修改与管理。特别是js部分的引入问题,建议大家可以看一看下面的经验分享。

    3.3 JS部分

    3.3.1 第一种方式:引入JS文件

    1. 与上面引入CSS文件前的工作一样,把js文件地址复制
    2. js文件地址粘贴到" src "
    js文件引入.png
    <script type="text/javascript" src="你的博客园上传的js文件地址"></script>
    

    3.3.2 ※ 第二种方式:直接复制JS代码(不推荐)

    同样不推荐这种方式,而且博主严重不推荐该种方式,这种方式有个巨大的坑。

    原因:首先基本原因与上面CSS相似。但最大的问题还是当你放入的js代码太长的话,会导致js代码运行失败,这可能与博客园服务端那边有代码长度方面的限制有关,具体原因尚不清楚,反正博主我是踩过这个坑的了,在这里将经验分享给各位。引入js文件的方式就不会失效,也方便代码的管理与查阅,这不两全其美吗?更何况这是一个好习惯

    3.4 最后保存设置

    四、总结与后言

    该插件可应用于博客园装饰,总体设计并不难,本人学习js以及jquery过程中,结合所学知识以及个人思考自行设计的,也算是给自己的一个小考验。朋友们可以拿去食用,或者参考学习一下,自己再进行设计与优化。

    博主还有其他几篇关于博客园装饰的文章,可供观看哟~

    博客园装饰——(一)置顶菜单栏(导航栏)

    博客园装饰——(三)博客园导航目录

  • 相关阅读:
    pandas 流式导出excel
    django serializer 定制error_message
    selenium etree xpath使用总结
    Python之路--Python基础
    初见Flask
    Git
    MySQL补充——索引,流程控制,数据备份,python操作mysql,SQLAlchemy
    Python之路--Django--Ajax、同源策略、Jsonp、CORS
    Python之路--Django--form组件与model form组件
    Python之路--Django--中间件
  • 原文地址:https://www.cnblogs.com/fry-hell/p/13335821.html
Copyright © 2011-2022 走看看