iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >怎么用css实现基于用户滚动应用
  • 235
分享到

怎么用css实现基于用户滚动应用

2024-04-02 19:04:59 235人浏览 泡泡鱼
摘要

这篇文章主要介绍怎么用CSS实现基于用户滚动应用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   通过将当前滚动偏移映射到html元素上的属性,我们可以根据当前滚动位置设置页面上

这篇文章主要介绍怎么用CSS实现基于用户滚动应用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

  通过将当前滚动偏移映射到html元素上的属性,我们可以根据当前滚动位置设置页面上的元素样式。我们可以使用它来构建一个浮动导航组件。

  这是我们将使用的HTML,<header>当我们向下滚动时,我们希望在内容之上浮动的一个很好的组件。

  <header>I'mthepageheader</header>

  <p>Lot'sofcontenthere...</p>

  <p>Morebeautifulcontent...</p>

  <p>Content...</p>

  首先,我们将监听该'scroll'事件,document并且scrollY每次用户滚动时我们都会请求当前位置。

  document.addEventListener('scroll',()=>{

  document.documentElement.dataset.scroll=window.scrollY;

  });

  我们将滚动位置存储在html元素的数据属性中。如果您使用开发工具查看DOM,它将如下所示。

  <htmldata-scroll="0">

  现在我们可以使用此属性来设置页面上的元素样式。

  

  header{

  min-height:3em;

  width:100%;

  background-color:#fff;

  }

  

  html:not([data-scroll='0'])body{

  padding-top:3em;

  }

  

  html:not([data-scroll='0'])header{

  position:fixed;

  top:0;

  z-index:1;

  

  box-shadow:00.5emrgba(0,0,0,.5);

  }

  基本上就是这样,当向下滚动时,标题现在将自动从页面中分离并浮动在内容之上。javascript代码并不关心这一点,它的任务就是将滚动偏移量放在数据属性中。这很好,因为JavaScript和CSS之间没有紧密耦合。

  仍有一些改进,主要是在性能领域。

  但首先,我们必须修复脚本,以适应页面加载时滚动位置不在顶部的情况。在这些情况下,标题将呈现错误。

  页面加载时,我们必须快速获取当前滚动偏移量。这确保了我们始终与当前的事态同步。

  //Readsoutthescrollpositionandstoresitinthedataattribute

  //sowecanuseitinourstylesheets

  conststoreScroll=()=>{

  document.documentElement.dataset.scroll=window.scrollY;

  }

  //Listenfornewscrollevents

  document.addEventListener('scroll',storeScroll);

  //Updatescrollpositionforfirsttime

  storeScroll();

  接下来我们将看一些性能改进。如果我们请求该scrollY位置,浏览器将必须计算页面上每个元素的位置,以确保它返回正确的位置。如果我们不强迫它每次滚动互动都这样做是最好的。

  要做到这一点,我们需要一个debounce方法,这个方法会将我们的请求排队,直到浏览器准备好绘制下一帧,此时它已经计算了页面上所有元素的位置,所以它不会再来一遍。

  //Thedebouncefunctionreceivesourfunctionasaparameter

  constdebounce=(fn)=>{

  //ThisholdstherequestAnimationFramereference,sowecancancelitifwewish

  letframe;

  //Thedebouncefunctionreturnsanewfunctionthatcanreceiveavariablenumberofarguments

  return(...params)=>{

  //Iftheframevariablehasbeendefined,clearitnow,andqueuefornextframe

  if(frame){

  cancelAnimationFrame(frame);

  }

  //Queueourfunctioncallforthenextframe

  frame=requestAnimationFrame(()=>{

  //Callourfunctionandpassanyparamswereceived

  fn(...params);

  });

  }

  };

  //Readsoutthescrollpositionandstoresitinthedataattribute

  //sowecanuseitinourstylesheets

  conststoreScroll=()=>{

  document.documentElement.dataset.scroll=window.scrollY;

  }

  //Listenfornewscrollevents,herewedebounceour`storeScroll`function

  document.addEventListener('scroll',debounce(storeScroll));

  //Updatescrollpositionforfirsttime

  storeScroll();

  通过标记事件,passive我们可以告诉浏览器我们的滚动事件不会被触摸交互取消(例如与谷歌地图等插件交互时)。这允许浏览器立即滚动页面,因为它现在知道该事件不会被取消。

  document.addEventListener('scroll',debounce(storeScroll),{passive:true});

以上是“怎么用css实现基于用户滚动应用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网html频道!

--结束END--

本文标题: 怎么用css实现基于用户滚动应用

本文链接: https://www.lsjlt.com/news/89692.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用css实现基于用户滚动应用
    这篇文章主要介绍怎么用css实现基于用户滚动应用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   通过将当前滚动偏移映射到html元素上的属性,我们可以根据当前滚动位置设置页面上...
    99+
    2024-04-02
  • 使用CSS 怎么实现用户滚动位置应用样式
    今天就跟大家聊聊有关使用CSS 怎么实现用户滚动位置应用样式,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。通过将当前滚动偏移量添加到到 html 元素的属性上,我们可以根据当前滚动位...
    99+
    2023-06-08
  • 怎么用css实现滚动效果
    使用css实现滚动效果的方法:1.通过“overflow”属性设置滚动条使网页元素的内容实现滚动效果,在css中添加样式代码,比如语法样式为:“overflow: scroll;”设置滚动条即可。css通过overflow属性设置滚动条示例...
    99+
    2024-04-02
  • 怎么用css实现滚动文字
    这篇文章主要介绍了怎么用css实现滚动文字,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。     代码  ...
    99+
    2024-04-02
  • 如何使用CSS实现无滚动条滚动
    小编给大家分享一下如何使用CSS实现无滚动条滚动,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!第一种:伪对象选择器在webkit内核的浏览器里可以定义滚动条样式。...
    99+
    2023-06-08
  • 怎么用css实现不随滚动条效果
    CSS中的position属性可以用来设置元素在页面中的定位方式,其中有一个值叫做fixed。fixed值指定的元素会被固定在页面的某个位置,不会随着页面的滚动而移动,这就实现了CSS不随滚动条的效果。那么在哪些情况下需要使用CSS不随滚动...
    99+
    2023-05-14
  • 怎么使用CSS实现滚动的图片栏
    这篇“怎么使用CSS实现滚动的图片栏”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“怎么使用CSS实现滚动的图片栏”,小编整理了以下知识点,请大家跟着小编的步伐...
    99+
    2024-04-02
  • css怎么实现滚动条不占用高度
    本教程操作环境:Windows10系统、CSS3版、DELL G3电脑css:overlay使滚动条不占据位置css怎么实现滚动条不占用高度?原始代码:overflow-x: auto;原始效果:滚动条占了高度,位于表格的下方。 改动后的代...
    99+
    2023-05-14
    css 滚动条
  • css怎么实现滚动吸顶
    小编给大家分享一下css怎么实现滚动吸顶,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!修改版预览这篇文章是三天前写就的,有大佬给我提了一些修改意见,我觉得这个意见...
    99+
    2023-06-08
  • css怎么实现元素不随滚动条滚动
    今天小编给大家分享的是css怎么实现元素不随滚动条滚动,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。什么是csscss是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来...
    99+
    2023-06-14
  • 怎么使用css实现文字循环滚动效果
    今天小编给大家分享一下怎么使用css实现文字循环滚动效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。首先创建一个html文...
    99+
    2023-07-04
  • 基于vue-seamless-scroll怎么实现无缝滚动效果
    这篇文章主要介绍了基于vue-seamless-scroll怎么实现无缝滚动效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于vue-seamless-scroll怎么实现无缝滚动效果文章都会有所收获,下面...
    99+
    2023-06-29
  • 如何用CSS实现平滑滚动效果
    如何用CSS实现平滑滚动效果在网页设计与开发中,滚动效果是一种非常常见且炫酷的效果,能够为用户带来更好的体验。而实现平滑滚动效果,可以通过CSS的一些技巧来实现。本文将介绍如何使用CSS来实现平滑滚动效果,并提供具体的代码示例。一、使用锚点...
    99+
    2023-11-21
    平滑 CSS 滚动效果
  • 如何使用纯css实现的无缝滚动
    这篇文章主要为大家展示了“如何使用纯css实现的无缝滚动”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用纯css实现的无缝滚动”这篇文章吧。<!do...
    99+
    2024-04-02
  • 基于原生JavaScript怎么实现SPA单页应用
    这篇文章主要介绍“基于原生JavaScript怎么实现SPA单页应用”,在日常操作中,相信很多人在基于原生JavaScript怎么实现SPA单页应用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于原生Jav...
    99+
    2023-07-05
  • CSS怎么实现滚动的图片栏
    这篇文章给大家分享的是有关CSS怎么实现滚动的图片栏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在一些网站上可以经常看到有一些图片进行持续不断的滚动,这个效果可以通过css的动画效果来实现。具体效果如下主要原理...
    99+
    2023-06-08
  • CSS怎么实现滚动阴影效果
    这篇文章主要为大家展示了CSS怎么实现滚动阴影效果,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“CSS怎么实现滚动阴影效果”这篇文章吧。css是什么意思css是一种用来表现HTML或XML等文件样...
    99+
    2023-06-06
  • css如何实现滚动条不占用高度
    这篇文章主要讲解了“css如何实现滚动条不占用高度”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css如何实现滚动条不占用高度”吧!css实现滚动条不占用高度的方法:1、打开相应的HTML文...
    99+
    2023-07-05
  • CSS怎么实现视差滚动效果
    这篇文章主要介绍“CSS怎么实现视差滚动效果”,在日常操作中,相信很多人在CSS怎么实现视差滚动效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS怎么实现视差滚动效果”...
    99+
    2024-04-02
  • Android应用中的标题滚动效果怎么利用Support Library 实现
    这篇文章给大家介绍Android应用中的标题滚动效果怎么利用Support Library 实现,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。布局文件代码在布局文件中,CoordinatorLayout作为布局文件根节...
    99+
    2023-05-31
    android support library
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作