首页
学习
活动
专区
圈层
工具
发布

【前端词典】4 种滚动吸顶实现方式的比较

前言 我入职第二家公司接到的第一个需求就是修复之前外包做的滚动吸顶效果。...我当时很纳闷为何一个滚动吸顶会有 bug,后来我查看代码才发现直接用的是 offsetTop 这个属性,而且并没有做兼容性处理。...粘性定位 sticky 相当于相对定位 relative 和固定定位 fixed 的结合;在页面元素滚动过程中,某个元素距离其父元素的距离达到 sticky 粘性定位的要求时;元素的相对定位 relative...() 的结合,我们也可以实现滚动吸顶效果。...描述: 当页面往下滚动时,吸顶元素需要等页面滚动停止之后才会出现吸顶效果 当页面往上滚动时,滚动到吸顶元素恢复文档流位置时吸顶元素不恢复原样,而等页面停止滚动之后才会恢复原样 原因:在 ios 系统上不能实时监听

2.8K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    手机网页布局经验总结

    今天我们就来探讨一下这个问题 阅读读者具备基础 1、熟练的使用HTML和CSS 2、对HTML5和CSS3有一定的了解,这个不必深入 3、掌握JavaScript、jquery脚本语言 如果还不能具备以上基础的读者们建议你们还是去网上找一下其他的一些相关的教学贴看一看...这里,细心的读者可能会问既然效果都是一样的,那么为什么要多此一举呢, 这样做当然有这样做的必要,详见这篇文章,在此就不必啰嗦了 其中一般这个Logo图标不但可以运用在标题中,而且还可以放在收藏夹中去使用...因为在iOS中没有滚动条的概念,在Android中通过这两个属性可以正常获取到滚动条的值,那么在iOS中我们该如何获 取滚动条的值呢?...,所以这个时候box-sizing就解决了我们的问题,具体的文法详见http://www.w3school.com.cn/cssref/pr_box-sizing.asp 从box-sizing这个属性中我又联想到还有另外一个与...//当手指接触屏幕时触发 touchmove //当已经接触屏幕的手指开始移动后触发 touchend //当手指离开屏幕时触发 touchcancel//当某种touch事件非正常结束时触发 执行事件的顺序

    2.3K60

    【前端词典】4 (+1)种滚动吸顶实现方式的比较

    前言 我入职第二家公司接到的第一个需求就是修复之前外包做的滚动吸顶效果。...粘性定位 sticky 相当于相对定位 relative 和固定定位 fixed 的结合;在页面元素滚动过程中,某个元素距离其父元素的距离达到 sticky 粘性定位的要求时;元素的相对定位 relative...描述: 当页面往下滚动时,吸顶元素需要等页面滚动停止之后才会出现吸顶效果 当页面往上滚动时,滚动到吸顶元素恢复文档流位置时吸顶元素不恢复原样,而等页面停止滚动之后才会恢复原样 原因:在 ios 系统上不能实时监听...我们从两个方向做性能优化(其实是一个方向): 避免过度的 reflow 优化滚动监听事件 问题定位过程 我们知道过度的 reflow 会使页面的性能下降。...所以我们需要尽可能的降低 reflow 的次数,给用户更加流畅的感觉。 有的朋友或许会说这个我知道,可是这和滚动吸顶有什么关系呢?

    2.4K30

    Interection Observer如何观察变化

    尽管Intersection Observer是针对此类功能的更高性能的解决方案,但我不建议我们将其视为滚动事件的替代品。相反,我建议我们将此API视为与滚动事件在功能上互补的额外工具。...除了每次观察到交集改变时我们可以获得这些信息外,观察者第一次启动时也会向我们提供这些信息。例如,在页面加载时,页面上的观察者将立即调用回调函数,并提供它正在观察的每个目标元素的当前状态。...因此,在我自己的两台机器上进行了非科学性测试之后,我感到对滚动事件和Intersection Observer之间的性能差异有一个不错的了解。我敢肯定,我可以通过一些努力使滚动事件更有效,但这值得吗?...观察者的通常解决方案是用一个定位元素,仅作为观察者的目标元素使用。我喜欢避免使用诸如此类的单一目的的元素,因此我决定修改这个特定的想法。 在此demo中,上下滚动以查看章节标题对各自章节的粘性反应。...考虑使用一个滚动动画库,该动画库仅在页面上需要它的部分实际可见时才起作用。库和滚动事件在整个页面中并非无效地活动。

    3K20

    jQuery 自定义网页滚动条样式插件 mCustomScrollbar 的介绍和使用方法

    如果你构建一个很有特色和创意的网页,那么肯定希望定义网页中的滚动条样式,这方面的 jQuery 插件比较不错的,有两个:jScrollPane 和 mCustomScrollbar。...我还用了window load ((window).load()) 来激活我的插件功能,因为这样,就可以保证在页面对象全部加载完成之后,加载我的插件。...就上述示例代码来说,我们应该在页面中定义一个 class 为 content 的 内容块。...在介绍参数的时候,我想先为新手介绍两种参数值的写法,分别是直接的和合并的。 我们平时接触的插件用的参数,都是直接跟着参数写上参数值,这个比较直观简单。...值:true,false 设置成 true 将会不断的检查内容的长度并且据此改变滚动条大小 建议除非必要不要设置成 true 如果页面中有很多滚动条的时候 它有可能会产生额外的移出 你可以使用 update

    15.1K30

    waypoint_使用jQuery Waypoint创建粘性导航标题

    大家好,又见面了,我是你们的朋友全栈君。 waypoint 在本教程中,我们将创建一个导航栏,当您向下滚动时,它会陪伴您-我们还将在混合中添加一两个two头以对其进行修饰。...摆脱了大多数不可能的直边丝带的几何形状之后,让我们继续。 步骤3:脚本 为了实现浮动标头效果,我们将使用Caleb Troughton的一个名为Waypoints的jQuery插件。...它的唯一目的是在用户滚动到某个元素时触发事件。 如您所见,它非常简单,但提供了很大的灵活性-您可以在其主页上查看几个示例 。 在页面中包含jQuery和Waypoint,让我们开始吧!...当元素的顶部在视口顶部下方的指定距离处时,正值触发路点;当元素的位置在视口顶部上方远处时,负值触发路径。 )。...现在,让我们坚持使用固定值,看看它们有什么用。 首先想到的是在粘性元素上方添加一些空间。

    4.4K30

    终于等到你,新的虚拟键盘API 即将到来,快来先睹为快吧!

    浏览器将向上滚动以使输入框在键盘上方,因此粘性标题和浮动按钮将消失。 它看起来与以下内容相似: 这是移动浏览器中的默认行为。...屏幕中间有一个输入框。 当输入框处于活动状态时,结账按钮将位于虚拟键盘下方,因此被隐藏起来。 我们可以轻松地通过虚拟键盘API来解决这个问题。...无法滚动到页面的最底部 当视口底部有一个带有 position: fixed 的项目时,我们通常会添加 padding-bottom 来偏移页面,使用户可以滚动到最底部。...env() 会回退到 0 ,总计将得出 var(--cta-height) 的值。 浮动操作按钮 在这个例子中,我们有一个浮动操作按钮,它位于页面的右下角。...在每个情境中都使用它可能会引起问题。是的,你没看错。 让我们举个简单的例子。我们有一个联系页面,其中包含长内容和表单输入。如果我们选择让虚拟键盘覆盖页面内容,那么将无法滚动到表单的最后。

    91720

    Framer 滚动动画效果集合 (讲解)

    滚动动画在我们浏览一些网站的时候经常看到(苹果官网,oppo官网,等等). 但是我们今天不是讲如何使用代码来实现,而是讲一下在Framer 里面如何实现....第一个效果,滚动时,文本从四个方向淡入出现 看效果: 具体步骤: 首先给下面两个大盒子设置一个滚动部分属性的编写.分别设置好名称就可以了,这是为了我们之后设置滚动动画的时候打好铺垫 添加滚动动画 点击文本元素...Transform), 在编辑页面,设置3d的X方向的值 第三个效果, 滚动时,重叠的多张图片向四个方向进行偏移 具体步骤: 设置每个图片为绝对定位,然后依次叠放在一起,并且左侧拉开一小段距离 给每个图片添加一个滚动过渡...然后下面的标题从大变小,图片从小到大, 并且在滚动到这个部分的底部的时候,滚动动画完成 图片的变化和 下面的文本,图片状态变化是同步的,也就是说触发的时机是一致的 实操: 粘性定位 首先设置图片所在的层的布局方式为粘性布局...仅当所有父图层的溢出都设置为可见时,粘性才会起作用,这可能会导致移动设备出现问题。具体来说,网页中的溢出元素(如下图所示)可能会导致网站在移动设备上水平滚动,从而导致不需要的结果。

    47910

    【CSS3】css开篇基础(4)

    父容器恢复高度 当产生浮动后,我们的浮动元素盒子默认高度是0,所以如果一个盒子里装的全是浮动盒子,该盒子高度就为0,就会坍塌掉,同时还会影响到后面标准流的布局。...sticky; top: 10px; /* 或者 bottom, left, right 中至少一个值 */ } 工作原理: 元素在页面滚动时表现为相对定位,直到其达到指定的阈值位置(例如距离顶部...如果元素离开视口顶部时没有足够的空间放置它,它将像相对定位一样继续滚动,直到可以固定在指定位置。 粘性定位不脱标,原有空间一直不变。...在设计中,粘性定位常用于创建导航栏在用户滚动时保持在屏幕顶部或侧边的效果,或者创建吸顶效果等。...浮动元素不会压住标准流文字 浮动元素会脱标,当它压住标准流时,文字不会被压住,会环绕在周围显示。 而定位元素脱标压住标准流时,文字会被压住。

    52310

    当卡片式UI不再流行,列表式UI将是王牌

    我们的用户体验设计团队最近重新设计基于卡片的模式。下面对之前的文章进行简单的总结,你会明显得得到更多的信息。然而,当涉及到新闻,尤其是家庭和归档的页面时,会发现我们远远超过了使用这种模式。 ?...我们第一次接触卡片问题是在 Goal News 发布之后 - 见图。屏幕上可以看见少量的抱怨的文章。例如: ? 用户关于卡片得反馈截图 太多的图片而且需要不停地滚动。我只是想快速的浏览新闻。...记住它只出现在第一张幻灯片,这个导航启用了自动播放。 移动模式 当我们研究在移动设备上的行为时, 我们访问了一个基于列表的 UI 网站(下面,左)和两个基于卡片的 UI 网站(下面,中,右)。...当比较最坏的情况和最好的情况,OneFootball(卡片式)最多只能放6篇文章的标题。 其中 Voetbalzone(列表式)在类似位置有 19 个标题。 ?...希望你会从我们的错误中学习,在设计下一个主页或归档页面时打破严格的卡片模式。

    3.6K70

    你还在用jquery.lazyload这个坑爹的图片分屏加载插件么?

    顾名思义,就是让图片出现在浏览器可视区域内时,才进行加载。好处就是当页面上图片过多时候,不需要一次性加载完,大大提高了友好性,也减轻的服务器的压力。   ...关于jquery.lazyload的demo,大家可以看一下:demo   我们发现,第一屏内的图片,是正常加载了,当滚动到第二张的时候,过了几秒,也渐显出来了,似乎没什么大问题。...这时,我们用火狐的firebug再来观看下,当然为了确保测试稳定,我用金山卫士清空了浏览器缓存。   看到了么?说好的分屏加载的效果呢?怎么还是有2个请求。...之后,我看了下lazyload的源码,其实逻辑上都是OK了,把img的src里的值,存放到自定义的original属性里,当图片滚动到浏览器可视区域内时,再把original里的值赋回到src里,实现分屏加载...关于这问题的解决方法,就是换插件,我找到另一个分屏加载的插件,叫:jquery.scrollLoading,具体说明可以看下这篇文章《jQuery页面滚动图片等元素动态加载实现》,这个插件真正实现了图片分屏加载

    62740

    用 CodeBuddy 打造沉浸式首页,我给图书管理系统开了个好头

    在完成了图书管理系统未来感十足的个人页之后,我决定趁热打铁,把首页也整得有模有样。于是我又找来了老搭档 CodeBuddy,从零出发,一起打造这个视觉和交互双在线的首页界面。...最初的 index 页面,坦白讲,空空如也,只有一个 logo 和标题。看起来就像刚装完 Vue CLI 的默认页面一样简洁。没关系,这样反而有更多空间发挥。...等数据列表,封面、标题、评分、标签应有尽有,甚至还有分类图标和阅读进度。...强化内容展示:继续阅读 + 每日推荐 = 更懂你 在 CodeBuddy 的建议下,我们新增了两个贴心模块。 首先是“继续阅读”。它能展示用户上次读到哪本书、读到多少进度,并引导用户“一键续读”。...这些优化措施让我即便在真机上调试,也能保证首页丝滑运行。而 CodeBuddy 帮我自动写好了这些代码逻辑,我基本上只需要确认和测试,开发节奏非常舒服。

    21000

    医疗数字阅片-医学影像-Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。_.throttle(func, , [option

    例子 // 避免在滚动时过分的更新定位 jQuery(window).on('scroll', _.throttle(updatePosition, 100)); // 点击后就调用 `renewToken...看下滚动事件的例子: 当使用触控板,滚动滚轮,或者拖拽滚动条的时候,一秒可以轻松触发30次事件。经我的测试,在智能手机上,慢慢滚动一下,一秒可以触发事件100次之多。...John(5年前)建议的解决方案是,在 onScroll 事件外部,每 250ms 循环执行一次。简单的技巧,避免了影响用户体验。 现如今,有一些稍微高端的方式处理事件。...节流阀实例 无限滚动 用户向下滚动无限滚动页面,需要检查滚动位置距底部多远,如果邻近底部了,我们可以发 AJAX 请求获取更多的数据插入到页面中。...我们心爱的 _.debounce 就不适用了,只有当用户停止滚动的时候它才会触发。只要用户滚动至邻近底部时,我们就想获取内容。 使用 _.throttle 可以保证我们不断检查距离底部有多远。

    2.8K20

    详细设计一个文章页目录插件

    基于此,就可以很好的利用该生成的页面实现一个目录,便于更直观方便的的浏览文章内容,而这就是最初我想为博客里的文章页实现一个目录功能的理由。...; 在合适的时候滚动目录列表,使得当前高亮的子目录会出现在滚动区域内部,且尽量处于滚动区域的中间区域; 当点击某个子目录的时候需要高亮当前点击的目录,且文章内容滚动到对应目录的位置,使得点击目录对应的文章标题所在的位置距离可视区域顶部的距离刚好等于一个固定值...所以需要做的就是在一个划定的区域内滚动目录,超出该区域的目录子项将会自动隐藏。通过滚动目录,我们可以实现目录列表的头尾两个目录子项都能很好的在划定区域里显示出来。...随着页面的滚动,目录将从头滚到尾,那么滚动的范围是从第一个子目录贴着滚动区域的顶部到最后一个子目录贴着滚动区域的底部为止; 当页面在最顶部的时候,当前高亮的子目录肯定是第一个,随着页面的向下滚动,高亮的位置也在不断下移...,当高亮位置移动到在目录滚动区域的上半部分之前,这段不进行目录滚动,如上面的图 ② 到 图 ③ 的变化过程; 当第一个子目录贴着滚动区域的顶部,且高亮位置在中位往下继续滚动的时候,需要进行目录滚动,滚动的距离是当前高亮目录所在位置距离滚动区域中间位置的高度差

    2.5K20

    商品添加到购物车动画getBoundingClientRect获取元素位置

    1.2 用户滑动右侧的内容左侧的导航栏会响应式改变 右侧内容监听一个scroll事件,当触发滑动事件的时候获取粘性定位在顶部的标题,根据标题使导航栏定位到相应的li var obj = element.getBoundingClientRect...(); 上述api返回一个对象obj,该对象有left、top等属性,可以根据该属性获得element元素在页面的位置 ?...这也实现了内容区标题栏始终在顶部的效果。关于粘性定位更多的可以看这里 2. 按钮缓慢弹出 当我们点击添加按钮的时候其他的内容会缓慢弹出,这个是靠css的动画实现的。...我们先将个数减少按钮和被选中物品个数num的left设为48px,使其被隐藏。点击添加按钮时选择物品个数大于0则让left变为0达到一个缓慢弹出的动画效果。...动画实现思路:用户点击添加时将一个小球的位置设置为被点击元素的位置,且获取目的地位置(购物车位置),当小球抛出时使其运动方式按照贝塞尔曲线过渡。

    2K20

    探究 position-sticky 失效问题

    CSS 的 position 值中,有一个非常有用的值 -- position: sticky,通常会被用于各种吸顶,吸底,吸边的效果中。...转换成通俗的大白话就是,Sticky 定位类似于相对定位,(当它表现为 fixed 定位的特性时)会根据最近的滚动容器(nearest scrollport)自动计算偏移量。...其实,这里不算失效,我们只需要将包裹 .sticky 元素的父容器的高度设置的大于 .sticky 元素本身,也能看到效果。...原因在于,设置了 overflow: hidden 的元素,它不再代用滚动的特性,当 sticky元素吸附于.hidden元素的顶部时,它随着 .hidden` 元素本身在 container 移动。...:sticky 元素也不会有滚动然后固定的情况 在满足上述情况下,设定了 position: sticky 的元素的父容器的高度必须大于当前元素,否则也会失效。

    5K20

    Excel 信息筛选小技巧

    前 言 在工业控制系统实施的各个环节中,我们总会遇到各种各样的“信息数据表”,如BOM单、IO表、通道分配表、监控数据表等。当数据量比较大的时候,筛选功能就很必要了。...如果该信息表后续有“在中间插入一行”的需求可能,建议序号列使用“ROW()-1”函数进行填充,这样在插入一行之后,序号自动全表更新。...,具体使用方法简单摸索一下就会了; Step 3: 固定“切片器”位置 可以看到,当我们以“压力”作为筛选条件的时候,筛选出来的信息还是很多,需要滚动页面进行查看,但是在滚动页面的时候,“切片器”并不会跟随移动...,那么如果我们要再次修改筛选条件的时候,还需要将页面滚动回初始位置,才能够完整的看到“切片器”。...返回Excel界面,滚动页面,并点击任意位置,此时我们看到“切片器”会立即移动到界面指定位置。 5.

    2K20

    微信小程序开发注意指南和优化实践

    ” WXML 1 不要换行写 微信开发者工具不会对代码进行trim操作,如果代码中换行,页面也直接换行。 ?...3 图片处理 1.大图片也会造成页面切换的卡顿有一部分小程序会在页面中引用大图片,在页面后退切换中会出现掉帧卡顿的情况。...WXSS 1 Css伪类看不到 在微信开发者工具中, Styles不会显示Css伪类,喜欢写::before或:first-child的小伙伴们请注意了,你的伪类在控制台是看不到的,所以本妹子不建议在小程序里用...滚动区域没有开启惯性滚动 当加了overflow: scroll时,IOS 下需要额外设置:-webkit-overflow-scrolling: touch,来开启惯性滚动。...在微信开发者工具中,可勾选”不校验合法域名、web-view(业务域名)、TLS版本以及HTTPS证书”规则即可用http,但是在实体里并没有这个选项,所以建议开发时就用https路径。 ?

    1.4K40
    领券