首页
学习
活动
专区
工具
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.1K30

    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,列表将缩小到已编辑文件列表。...在不移动光标位置情况下滚动编辑器窗格中文本 常见做法是向上或向下滚动编辑器窗格来阅读代码。如果不需要编辑代码,您可能也不需要将光标从其当前位置移开。

    10410

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

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

    2.1K20

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

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

    59440

    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

    DiscoTOC - 自动内容表格

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

    39500

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

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

    5.1K20

    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

    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.3K20

    AnyView 对 SwiftUI 性能影响

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

    14200

    flutter仿微信底部图标渐变功能实现代码

    pageViewcontroller可以监听到pageView滚动事件,也可以获取pageView滚动位置,所以我们在滚动事件中根据位置去改变对应图标颜色就可以实现了。...里面有3个参数,a和b都是颜色,t是夹在0到1之间,当t为0返回a,当t为1返回b 也就是在滚动事件中,计算出 t ,根据 t 改变图标颜色就可以实现上面的效果了。...管理图标颜色 因为我是用了自带底部导航BottomNavigationBar,在pageController滚动事件中改变图标颜色太麻烦了,所以用了Stream来管理图标状态。...使用StreamBuilder包住要改变颜色组件,并且绑定从构造函数设置StreamController。 在StreamBuilder中根据pageView滚动事件传进来参数控制图标颜色。...0.6, 个人感觉当前颜色和结束哪个颜色相差太多, //所以超过0.6恢复默认颜色 t = t = 0.6 ?

    1.3K40
    领券