首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我滚动时,列表的图标状态恢复

当滚动时,列表的图标状态恢复,这是一个前端开发中常见的交互效果。在实现这个效果时,可以通过监听滚动事件来判断列表是否处于可见状态,然后根据列表的状态来改变图标的样式。

具体实现步骤如下:

  1. 使用HTML和CSS创建一个包含列表和图标的页面结构。可以使用无序列表(<ul>)来创建列表,每个列表项(<li>)包含一个图标。
  2. 使用JavaScript监听滚动事件。可以使用addEventListener函数来监听scroll事件。
  3. 在滚动事件的处理函数中,判断列表是否处于可见状态。可以通过获取列表容器的位置和窗口的滚动位置来判断列表是否可见。如果列表在可见区域内,则将图标的状态恢复;否则,将图标的状态改变为默认状态。
  4. 根据图标的状态改变其样式。可以使用CSS类来定义不同状态下的样式,然后使用JavaScript通过classList属性来添加或移除这些类。

下面是一个示例代码:

HTML:

代码语言:txt
复制
<div class="container">
  <ul class="list">
    <li>
      <span class="icon">图标1</span>
      列表项1
    </li>
    <li>
      <span class="icon">图标2</span>
      列表项2
    </li>
    <li>
      <span class="icon">图标3</span>
      列表项3
    </li>
    ...
  </ul>
</div>

CSS:

代码语言:txt
复制
.container {
  height: 500px; /* 列表容器的高度 */
  overflow: auto; /* 滚动条自动出现 */
}

.list {
  padding: 0;
  list-style: none;
}

.icon {
  /* 默认状态的样式 */
}

.icon.active {
  /* 可见状态的样式 */
}

JavaScript:

代码语言:txt
复制
const container = document.querySelector('.container');
const icons = document.querySelectorAll('.icon');

function handleScroll() {
  const rect = container.getBoundingClientRect();
  const visible = rect.top < window.innerHeight && rect.bottom >= 0;

  if (visible) {
    icons.forEach(icon => icon.classList.add('active'));
  } else {
    icons.forEach(icon => icon.classList.remove('active'));
  }
}

container.addEventListener('scroll', handleScroll);

这样,当滚动时,列表的图标状态就会根据列表的可见性来进行恢复或改变。你可以根据需要修改样式和其他交互逻辑。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ubuntu快捷键设置大全

任务栏滚动鼠标=切换窗口。 工作区滚动鼠标=切换工作区。 音量那里可以滚轮调整音量的。 修改目录图标:可以把nautilus中看到的图片,直接拖放到目录属性的图标上就可以了。...压着shift拖动窗口可以让窗口吸附在屏幕的边缘 鼠标左右两键同时按,其效果相同于中键。 还有要使用滚动条移动页面时,鼠标的左、右、中键都有不同效果。...nautilus的右键菜单增加---10楼 totem的列表里面,直接从nautilus里面拖目录过去,目录里面的音乐电影都会自动排到列表的。...b、任务栏滚动鼠标滑轮。 8、直接将 文件管理器 中的文件拖到 GNOME终端 中就可以在终端中得到完整的路径名。 9、修改目录图标:可将文件管理器中的图片直接拖到文件夹属性所在的图标上。...好了,以下是我使用 Ubuntu 时发现的一些有用的技巧,这里分享给大家。

2K30

关于React中状态保存的研究

在使用react搭配react-router做应用的时候,你可能遇到这样的问题,当我从第一个页面过渡到第二个页面,然后返回之后,发现之前的页面的状态全部不见了,即回到了初始的状态。...可以看到,当从详情页面返回时,点击的激活状态依旧可以保存,但是列表滚动的高度并不能够保存,关于高度的恢复在下面会讲到。 解决方案二:当前页面弹窗 不占用路由,在当前页面直接已弹窗的形式加载详情页面。...看上去效果十分好,既能保存状态,也能保存滚动条的高度。...解决方案三:本地存储/redux数据仓库/参数传递 我把这三种方案归结为一种,因为实际上是在离开列表组件的时候保存当前的状态,然后在回到页面的时候根据之前保存的状态来进行现场恢复而已。...效果和字路由方式相同,依然存在滚动高度不能保存的问题。 滚动高度问题 下面来谈谈如何解决滚动高度的问题,综合起来还是一种恢复现场的方式。

4.3K40
  • 国产linux操作系统深度系统20.3发布(推荐)

    新增输入法高级设置功能 新增按照语言整理的Fcitx输入法列表 新增输入法恢复默认快捷键按钮 文档查看器 新增打印功能入口 音乐 新增在空歌单界面下增加“添加音乐”入口 新增在歌单界面使用鼠标右键来添加音乐功能...修复部分机型电脑重启后,三分钟内在桌面右键菜单缺少选项的问题 修复手动挂载U盘到/data目录,删除文件提示无权限的问题 修复UDF刻录空的文本文件时,刻录失败的问题 修复文件处于选中状态后切换显示状态...应用商店 修复暂停下载任务时概率出现崩溃的问题 修复在弹出的二次确认删除框内,无法点击删除或取消按钮的问题 修复下载应用时,点击全部暂停无法停止下载进程的问题 修复已安装的应用勾选框可以勾选的问题 修复调整异常状态重新下载时的触发区域...修复系统切为繁体、正体时,任务栏图标右键的所有窗口未翻译的问题 修复快速点击地址栏前进、后退按钮出现崩溃的问题 修复从设备上传超过10M大小的jpeg格式图片,键盘按ESC键无法退出弹框并且焦点在自定义标签页上的问题...修复长按自定义标签页快捷图标,无法调起右键菜单的问题 修复深色主题模式下,浏览器窗口化状态显示浅色滚动条的问题 修复设置自定义背景后做重置操作,已打开的标签页背景不会恢复到默认的问题 修复已打开标签页的自定义背景选项无法自动同步的问题

    5.8K20

    Flutter 1.22 正式发布

    您可以在cupertino_icons预览页面上看到图标的完整列表,在 flutter.dev上可以看到迁移详细信息页面。...发生这种情况时,操作系统会通知该应用被终止以快速保存任何UI状态,以便在用户循环回到该应用时可以将其恢复。正确实施后,可以为用户提供无缝的体验,同时可以更好地利用设备的资源。...例如,状态恢复不仅适用于Android,iOS应用程序也可以受益。此外,我们正在忙于更新自己的窗口小部件,以在恢复过程中保持其状态。...例如,Pixel 4输入的运行频率为120hz,而显示屏的运行频率为90hz。滚动时,这种不匹配会导致性能下降。...当我们确定这是最好的体验时,我们计划在以后的版本中默认启用此标志。 新的统一的Dart开发人员工具 与往常一样,对Flutter的更新不仅意味着引擎和框架,还包括工具。

    7.5K20

    软件易用性测试_易用性测试包含界面测试吗

    控件准则 1)窗口通用准则 2)菜单通用准则 3)按钮通用准则 4)复选框、选项框、下拉列表通用准则 5)工具栏通用准则 6)状态条、滚动条通用准则 7)对话框通用准则 4....f:系统常用的工具栏设置默认放置位置。 6)状态条、滚动条通用准则 a:状态条要能显示用户切实需要的信息。常用的有:目前的操作、系统状态、用户信 息、提示信息、错误信息等。...c:状态条的高度以放置五号字为宜,滚动条的宽度比状态条略窄。 d:若需长时间等待,应有进度提示条,如果只有一个沙漏或者转圈或一请等待的字样, 时间长了用户会失去耐心。...d:对于造成用户无法恢复的操作一定要提示用户。 e:对于错误信息的提示要直观。 f:错误提示时的对话框中的提示信息应保持完整、通常、友好、统一。 4....h:提供及时调整系统帮助的快捷键功能,常用F1。 I:所有界面元素应当提供充分而必要的提示,例如:当鼠标移动到工具条上的某个图标 按钮时,应当在该图标旁边出现功能提示信息。

    1.3K50

    微信小程序实践:2.3 可滚动的容器组件之 scroll-view

    关于这个组件,有以下几个问题值得思考: 1,当我们说滚动时,涉及到外面的滚动容器与里面的可滚动实体两个对象,我们说滚动到顶部、滚动到底部,指的是什么呢?是什么到顶部,什么到底部了?...2,当滚动事件派发时,滚动到顶部是一个状态,还是一个单一的事件,它会触发多次吗? 3,scrolltoupper事件、scrolltolower事件是什么时候触发的?...这是纵向滚动的情况,当是横向滚动时,是拿scroll-left作为比对值。 这里需要注意,这两个事件不是点事件,而是状态事件。...它是为了在更新后,取消下拉更新状态的。当组件处于「下拉更新」状态后,它的值变为true,此时程序要去做一些耗时的事情,例如网络加载。待处理完成了,将这个值置为false,下拉更新的状态就恢复回去了。...这个页面上有一个icon列表,列表里的图标名称都可以使用。 注意:mp-icon的颜色不能从父组件直接继承,所以即使父组件已经设置了颜色,这个组件也需要额外通过color属性再设置一次。

    15.3K30

    IntelliJ IDEA 2021.2 中,您完全不需要鼠标的 10 种情况

    还可以使用 F12 将焦点返回上次使用的工具窗口(作为该工具窗口的特定快捷键的替代方法)。 在下面的 图片中,当我使用 Escape 键将焦点返回编辑器窗口时,演示助手没有显示文本“Escape”。...还可以使用快捷键 Ctrl+Shift+F12 (⇧⌘ F12) 隐藏或恢复所有工具窗口。 5. 使用 Alt+Enter 查看灯泡图标的建议 不必再点击灯泡图标查看针对代码段的建议了!...导航到出现灯泡图标的代码行,使用 Alt+Enter 调用 Context actions 即可查看相同的建议。 6....选择要打开的工具窗口或文件。 iii) 使用 Ctrl+E(或 ⌘E)查看最近使用过的文件。此列表还包括打开的文件的所有类型。如果在对话框开启时再次按 Ctrl+E,列表将缩小到已编辑文件的列表。...在不移动光标位置的情况下滚动编辑器窗格中的文本 常见的做法是向上或向下滚动编辑器窗格来阅读代码。如果不需要编辑代码,您可能也不需要将光标从其当前位置移开。

    11310

    测试思想-系统测试 界面测试总结

    将完成相同或相近功能的元素(按钮,下拉框,滚动条,文本编辑框,复选框,单选按钮,列表框)用组框框选,并要有功能说明或标题。 3. 界面元素(如菜单元素)的图标能直观的代表要完成的操作。...状态条要能显示用户切实需要的信息,常用的有: 目前的操作、系统状态、用户位置、用户信息、提示信息、错误信息等,如果某一操作需要的时间较长,还应该显示进度条和进程提示。 10....滚动条的长度要根据显示信息的长度或宽度能及时变换,以利于用户了解显示信息的位置和百分比。 11. 状态条的高度以放置五号字为宜,滚动条的宽度比状态条的略窄。 12....菜单和工具条要有清楚的界限;菜单要求凸出显示,这样在移走工具条时仍有立体感。 13. 菜单和状态条中通常使用5号字体。工具条一般比菜单要宽,但不要宽的太多,否则看起来很不协调。 14....同一界面上的控件数最好不要超过10个,多于10个时可以考虑使用分页界面显示。 2. 选项数较少时使用选项框,相反使用下拉列表框 3. 界面空间较小时使用下拉框而不用选项框。 4.

    2.2K20

    TDesign 更新周报(2022年6月第3周)

    组件按下 Enter 时触发 submit 事件,不再触发Dialog:优化动画初始位置Bug FixesTable:修复 table 透传 loading size 为枚举无效的问题优化吸顶和吸底的位置...,支持带有 offsetBottom 和 offsetTop 特性的位置定位Select:修复 t-option 异步加载问题修复分组为空未展示分组名称的问题优化虚拟滚动示例、修复 pagination...Select:修复透传 inputProps 参数无效switch:修复 slots.label 参数无效TreeSelect:优化过滤状态下的输入框交互,修复 selectInput 参数透传数据响应问题...CheckBox:修复二次封装多选框组件插槽定义选项失效Upload:修复图片列表模式存在图片列表的情况下,拖拽图片会触发浏览器默认打开图片行为Slider:修复 slider 数字输入框初始化重复渲染问题...alpha 阶段,欢迎访问官网试用设计资源Figma for Web 发布 1.2.1Featuresicon:新增 rollfront 图标、新增设计示例使用图标 move/leftRight/upDown

    3.1K10

    Flink状态管理与Checkpoint实战——模拟电商订单计算过程中宕机的场景,探索宕机恢复时如何精准继续计算订单

    其中一致检查点也就是Checkpoints也是Flink故障恢复机制的核心,这篇文章将详细介绍Flink的状态管理和Checkpoints的概念以及在生产环境中的参数设置。...reduce聚合操作 状态管理分类 ManagedState(用的多) Flink管理,自动存储恢复 细分两类 Keyed State 键控状态(用的多)...Source 需要外部数据源可以重置读取位置,当发生故障的时候重置偏移量到故障之前的位置 内部 依赖Checkpoints机制,在发生故障的时可以恢复各个环节的数据 Sink:...当故障恢复时,数据不会重复写入外部系统,常见的就是 幂等和事务写入(和checkpoint配合) 有关检查点配置的常用参数配置介绍 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment...只有在作业失败时,检查点状态才可用。

    60840

    DiscoTOC - 自动内容表格

    滚动内容与 topic 的链接是同步的 当你滚动过当前页面中中的主题的时候,对应这个主题的内容列表将会使用高亮来进行显示(显示为绿色) 针对标题添加属性(你可以从其他的 topic / post 中来链接到特定的内容...当上面的所有内容完成后,TOC 将会根据标题创建一个链接到正文的链接,如下图: 设置 这个组件只有一个设置,就是 Toc 的图标(这个图片将会在后面的设置中使用,官方不建议对这个图标进行修改。)...table of contents(插入内容列表)" 这个是在内容列表被插入到主题页面的时候来进行显示的。...插入到主题页面中 当我们使用 Toc 的时候,阅读进度小组件会发生什么 你可能知道,在页面中我们没有办法同时显示阅读进程和 TOC 。...所有的内容显示是在客户端完成的,用行话来说,就是所有的内容是在前端完成的,所以后端的数据提供没有受到任何的影响。 当你禁用这个组件以后,所有的内容将会恢复成原样。

    39700

    TDesign 更新周报(2022 年 5 月第 2 周)

    Fixes Select: 修复 textarea 作为 panelContent 时无法使用键盘事件的问题 Slider: 修复 InputProps 属性传递布尔值时 ts 错误的问题 Table...: 固定列滚动阴影修复 Dropdown: 插槽模式下 maxHeight 失效的问题 Dropdown: 透传 popup 事件问题 Dialog: 修复 normal 下加入 lock 导致页面无法滚动的问题...notification: 增加 onMouseenter 和 onMouseleave 事件,保证鼠标移入移出组件时,duration 时间的停止和重新计时。...DateRangePickerPanel 单独使用 支持年份、月份区间选择 支持 allowInput api TimePicker: 重新调整样式、允许输入交互重新设计 调整交互为点击确认按钮保留改动 直接关闭弹窗不保留改动 恢复初始值...Features lint新增 style scoped 提示 新增维护中页面 升级组件库依赖至 0.14+ Bug Fixes 修复多标签 Tab 页关闭左侧,关闭其他可能导致主页标签被删除 修复多个滚动列表之间切换时页面不刷新导致的样式缺陷

    1.6K40

    摹客RP,新增图文选项卡组件

    摹客协作 任务管理的评论功能支持插入图片 优化新建任务的流程 摹客DT 新增离线编辑时的提示,网络恢复后将自动上传数据 优化项目的选中方式,支持多选移动、删除项目 新增字宽...、字高属性,深度定义可变字体的风格 摹客RP 新增图文选项卡组件 本次更新,新增图文选项卡组件,可用于快速制作手机项目底部导航等模块内容,你只需要在编辑窗口选中图标,在图标库中挑选合适的图标进行替换即可...摹客DT 新增离线编辑时的提示 网络环境不佳时,离线编辑是不是特别紧张?总担心自己的设计稿没有实时保存。 本次摹客DT更新后,离线编辑时醒目提醒,网络恢复后将自动上传数据,切实保障你的设计资产。...修复从网页项目类型修改为移动项目后,项目变为横屏的问题。 修复页面树异常滚动的问题。 修复使用快捷键切换页面时,页面树未自动滚动的问题。...修复团队审批,管理员无法实时收到成员申请的toast提示的问题。 修复团队信息处RP项目数量显示为0的问题。 任务管理 优化在空状态下的搜索体验。

    1.5K20

    DiscoTOC - 自动内容表格

    滚动内容与 topic 的链接是同步的 当你滚动过当前页面中中的主题的时候,对应这个主题的内容列表将会使用高亮来进行显示(显示为绿色) 针对标题添加属性(你可以从其他的 topic / post 中来链接到特定的内容...当上面的所有内容完成后,TOC 将会根据标题创建一个链接到正文的链接,如下图: 设置 这个组件只有一个设置,就是 Toc 的图标(这个图片将会在后面的设置中使用,官方不建议对这个图标进行修改。)...table of contents(插入内容列表)" 这个是在内容列表被插入到主题页面的时候来进行显示的。...插入到主题页面中 当我们使用 Toc 的时候,阅读进度小组件会发生什么 你可能知道,在页面中我们没有办法同时显示阅读进程和 TOC 。...所有的内容显示是在客户端完成的,用行话来说,就是所有的内容是在前端完成的,所以后端的数据提供没有受到任何的影响。 当你禁用这个组件以后,所有的内容将会恢复成原样。

    26220

    【软件开发规范七】《Android UI设计规范》

    使用悬浮按钮要遵循以下规则: 建议只用一个悬浮按钮 悬浮按钮可以贴在纸片边缘或者接缝处,但不要贴在对话框、侧边抽屉和菜单的边缘 悬浮按钮不能被其他元素盖住,也不能挡住其他按钮 列表滚动至底部时,悬浮按钮应该隐藏...编辑 没有头像、图标等元素时,需要用通栏分隔线 ​编辑 图片本身就起到划定区域的作用,相册列表不需要分隔线 谨慎使用分隔线,留白和小标题也能起到分隔作用。能用留白的地方,优先使用留白。...编辑 滚动时,如果列表较长,小标题会固定在顶部,直到下一个小标题将它顶上去。 ​编辑 存在浮动按钮时,小标题要让出位置,与文字对齐。 ​...手机端的侧边抽屉距离屏幕右侧56dp。 ​编辑 侧边抽屉支持滚动。如果内容过长,设置和帮助反馈可以固定在底部。抽屉收起时,会保留之前的滚动位置。 ​...编辑 ​编辑 列表较短不需要滚动时,设置和帮助反馈跟随在列表后面。 ​

    5.1K20

    ViewPager中Fragment状态保存的哪些事

    引言 在使用 ViewPager 时 , 如果我们的适配器使用的是 FragmentStatePagerAdapter ,那么当我们重新滑到之前已销毁的页面时,一般情况下页面的状态依然将保持不变(比如...重新创建后 View状态(RecyclerView滚动位置) 的变化,如下所示: 因为默认缓存为 n(1)+2 ,即当我们滑动到 item=3 时,1 页面此时已被销毁。...但当我们重新切换到 1 时,可以发现,Fragment1 中 RecyclerView 的 滚动位置 没有变化,所以可以证明 Fragment 的状态的确是被还原了。 那这是怎么做的呢?...的状态信息,并且以下标的方式进行了保存,当我们在滑动 ViewPager 时,其会加载并初始化指定 position 所对应 Fragment ,并将缓存的 Fragment 的状态信息 set 进去...当 Fragment 生命周期执行到 activityCreated 时,从而调用 restoreViewState() 触发View状态的恢复(此时onCreateView已执行),然后将我们的view

    1.4K20

    Visual Studio Code 1.72 正式发布

    要恢复所有菜单,可以从命令面板(⇧⌘P)运行重置所有菜单。...更好的编辑器自动滚动:滚动速度根据光标位置进行调整 当选择和拖动时,编辑器过去常常以一种取决于显示器每秒帧数(FPS)的方式滚动,有时会在鼠标到达编辑器边缘时使编辑器快速滚动。...现在当鼠标接近边缘时,编辑器以每秒一个 viewport 的速度自动滚动,而当鼠标离编辑器较远时,速度更快,与 FPS 无关。...活动栏中的扩展图标上的徽章现在显示需要注意的扩展的数量。...树状视图中的搜索结果:在列表或树状视图中查看搜索结果 你现在可以以树状方式查看搜索结果了,只需点击搜索视图上角的列表 / 树状图标,就可以在列表和树状视图之间进行切换。

    1.4K30

    AnyView 对 SwiftUI 性能的影响

    在这个测试中,我们将通过整个消息列表三次滚动。没有 AnyView下面是没有泛型实现的动画卡顿记录。...在加载消息时进行任何后续滚动,不会影响性能。在此测试期间,FPS 值的平均值约为每秒 59 帧。滚动是流畅且响应迅速的。有 AnyView接下来,让我们做同样的测试,同时使用 AnyView 包装器。...当需要更新视图时,仅对其进行更改(例如,向视图添加另一个反应)。有 AnyView当我们在这种情况下使用 AnyView 时,事情就变得有趣了 - 在短时间内对屏幕上的视图进行频繁更新。...在此场景中,有几个可见的卡顿和挂起,当我们频繁响应消息时,FPS 降至 50 以下。由于在几秒钟内强制重绘视图多次,帧丢失在这里更加明显。...使用 if-else 导致视图标识丢失,就像 AnyView 一样,因此在这里没有性能差异是可以预期的。这也取决于实现的方式 - 你的数据模型,将状态传递到哪里,哪些更新可能会导致视图重绘等等。

    15300
    领券