前端技术 -- 页面滚动条到一定高度后出现置顶按钮

  今天因为业务需要,需要实现一个功能,就是:

  "当页面滑动到一定高度后,出现顶置按钮",这或许不是很难的一个功能,但是对于菜鸟来说的说,我并不会,所以自己上网查了查,有很大的收获,所以我就记录了下来.

  因为是是开发移动端,但是由于PC端也有同样的效果,但是代码有点不一样,所以就分开写了.

  移动端:

  使用的框架是ionic和angular,因为是刚入行的菜鸟,所以ionic和angular也不是很熟练,这里便不深入解释.

  ionic有一个标签<ion-content> 这个标签(我个人称为标签,因为挺像的)有一个属性on-scroll="",on-scroll,该方法的作用是,当滑动<ion-content>标签的内容时,会执行on-scroll的方法.所以我们可以通过这个方法获取页面滑动的高度为多少.

  然后可以通过注入ionic的$ionicScrDelegate服务的getScorllPosition()方法获取到视图对象

  getScorllPosition()方法  返回: 对象 滚动到该视图的位置,具有以下属性:

  • {数值} left 从左侧到用户已滚动的距离(开始为 0)。
  • {数值} top 从顶部到用户已滚动的距离 (开始为 0).

  (滑动100px == $ionicScrDelegate.getScorllPosition().top == 100)

  所以整个功能的大致步骤为:

  1,做一个顶置图标,用绝对定位定位到页面某处,然后使用ng-show=‘config.showTop‘去隐藏该图标(因为使用的是angularjs),‘config.showTop‘为自定义的对象属性,初始化为false

  2,新建一个方法,该方法用于获取视图所滑动的距离,该方法放在<ion-content>标签 <ion-content id="content" class="has-header" on-scroll="toTopScroll()">

  3,当滑动距离大于某个数值的时候,config.showTop的值变成true,顶置图标就显示出来了,相反的,如果小于,就为false.

  $scope.toTopScroll = function(){
                        $scope.config.showTop = $ionicScrollDelegate.getScrollPosition().top>250?true:false.
                    };

  注意:1,有on-scroll属性的<ion-content>外面不能有<ion-pane>,否则获取不到视图滑动的距离值

     2,<ion-infinite-scroll>标签是必须有的,不然效果很难看.

  PC端:

     pc端原理是一样的,但是使用的技术不同,使用的是JQuery的方法(可能有更好的,其实移动端也可以用JQuery完成.)

     原理就不说了,直接说区别吧,不同的区别只有两点:

     1,$(window).scroll() //当我们操作页面滚动时,会触发该方法 ,该方法内执行一个函数

     2,$(window).scrollTop() //可以获取滚动条的垂直位置

     其他的和移动端基本一样.

  这是第一篇随笔,写得肯定不好,多多包涵. 

    

     

时间: 2024-10-13 15:06:24

前端技术 -- 页面滚动条到一定高度后出现置顶按钮的相关文章

Javascript笔记----实现Page页面右下角置顶按钮.

从用博客开始,发现博客园中很多博友的博客中在Page右下角都有个图标,不论屏幕怎么拉伸,都始终停留在右下角.点击后页面置顶.后面想想写一个Demo来实现这种效果吧. 一. 图标右下角固定. 1.SS 里面提供了4中布局方式. 其中fixed表示绝对定位元素.所以我们选择使用fixed来实现图标固定. absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位. 元素的位置通过 "left", "top", "right&qu

后端model传入前端JSP页面中的值判断后再取值

所遇到的问题后端model传入前端JSP页面中的值通过foreach循环内要满足条件才能取值给Div中,我们知道jsp页面中可以直接用EL表达式取值,格式就是${"model中传来的数据"},但是我要把传过来的数据判断后再取值就遇到了问题,通过查百度发现了一个方法,下面就分享一下. 1 <c:forEach var="v" items="${page.objectList}"> 2 <tr> 3 <td style=

页面点击置顶按钮

1.以某一个height为100%的元素为相对定位元素,绝对定位到底部 或者 将元素的位置设置为 position:fixed;  总之,写一个好看的按钮在下面,可以用图片(灰白色). 在hover的时候讲position属性改变为彩色的向上点击按钮. 2.监听滚动事件,在滚动至底部的时候才会出现.顶部的时候自动隐藏. //置顶按钮 $(window).scroll(function(){ if($(document).scrollTop()>160){ $('.goToTop').fadeIn

jQuery实现页面底部滑动置顶

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>jQuery实现页面底部滑动置顶 | alleyloft.com</title> <link type="text/css" rel="stylesheet" href="css/main.css" /> <script

前端技术-前端页面优化

前端页面优化 时间花哪里去了? 只有10%-20%的最终用户响应时间花在了下载html文档上,其余80%-90%时间花在了下载页面的相关组件上.如:图片.Flash等. 所以主要优化: 减少http请求缓存减少文件大小:压缩文件+优化代码 健康的优化因该是根据页面的加载过程,全面的优化过程 第一步.浏览器预处理 查询Cache:读取Cache 或者发送304请求 第二步.查询DNS 优化规则--减少DNS查找 DNS缓存浏览器DNS缓存 计算机DNS缓存 服务器DNS缓存(TTL) 使用Keep

百度前端技术学院—-小薇学院(HTML+CSS课程任务)

任务一:零基础HTML编码 课程概述 作业提交截止时间:04-24 重要说明 百度前端技术学院的课程任务是由百度前端工程师专为对前端不同掌握程度的同学设计.我们尽力保证课程内容的质量以及学习难度的合理性,但即使如此,真正决定课程效果的,还是你的每一次思考和实践. 课程多数题目的解决方案都不是唯一的,这和我们在实际工作中的情况也是一致的.因此,我们的要求不仅仅是实现设计稿的效果,更是要多去思考不同的解决方案,评估不同方案的优劣,然后使用在该场景下最优雅的方式去实现.那些最终没有被我们采纳的方案,同

前端技术-调试工具(下)

页面制作之调试工具 五.Profiles 这个主要是做性能优化的,包括查看CPU执行时间与内存占用等. 例述如下:原文地址:http://www.smashingmagazine.com/2012/06/12/javascript-profiling-chrome-developer-tools/. 你的网站正常运转.现在我们来让它运转的更快.网站的性能由页面载入速度和代码执行效率决定.一些服务可以让你的网站载入更快,比如压缩JS和CDN,但是让代码执行的更快你要做的事情.代码中很小的改动都可能

美利金融前端技术架构杂谈

今天简单说下我厂前端方面一些技术选择. 构建工具 构建工具上我们选用了fis2,可以自动化文件压缩.打版本号,而且自带数据mock功能,可以充分实现前后端并行开发. 在选择js模块化方案时候,我们选择了commonjs规范的模块加载,为了降低团队的使用难度,我非常希望使用browserfiy的模式,即把所有require进来的模块打包成一个文件,这样既很舒服的使用了commonjs规范,又无需主动配置文件合并策略. 但研究后发现想要很舒服的配合fis2+browserfiy使用并不容易,还好fi

解密国内BAT等大厂前端技术体系-百度篇(长文建议收藏)

1 引言 整个业界在前端框架不断迭代中,也寻找到了许多突破方向,例如跨平台中的RN.Flutter,服务端GraphQL.Serverless,前端和客户端的融合越来越紧密,前端在Node和Electron的加持下,也扩展了自己的版图到服务端和桌面. 同时,随着前端开发越来越复杂,整个前端研发也经历了人工化->工具化->工程化->智能化的演变.目前各个大厂在工程化实践不断迭代,出现了许多Low/No Code等前端智能化解决方案,工程化实践也深入到研发的各个环节,不断提升前端研发的标准化