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

打造聊天框丝滑滚动体验:AI 聊天框的翻转之道

逐字渲染的挑战最近在开发AI聊天助手的时候,遇到了一个很有趣的滚动问题。我们需要开发一个类似微信聊天框的交互体验:每当聊天框展示新消息时,需要将聊天框滚动底部,展示最新消息。...如果在 web 什么也不做,聊天体验可能是这样的,需要用户手动滚动到最新消息:试想一下如何在 web 实现微信的效果。每当聊天框接收到新消息时,都需要调用滚动方法滚动到消息底部。...每输出一个文字要滚动一次,听起来就会性能焦虑。AI 正在输出内容时,用户无法滚动查看历史消息。用户向上滚动查看历史消息,会被 Javascript 不断执行的 scrollIntoView 打断。...于是联想到了 Excel 表格,当我们在表格第一行插入一行,这一行后边的内容会被很自然的挤下去。并不需要做什么滚动,这一行就会出现在最顶部的位置。...聊天框的翻转实现翻转聊天框利用 CSS transform: rotate(180deg) 将整个聊天框倒转,并且把接收到最新的消息插入消息列表的头部。

1K21

Material Design — 底部导航(Bottom Navigation)

超过6个不要在底部导航用可滚动内容形式 ?...---- 风格 图标和文本 因为底部导航动作以icon呈现,所以底部导航内容应该与icon进行适当的互动。...底部导航栏不应用于: ·专注于单一任务的观点,电子邮件“撰写”页面。 ·包含用户首选项或设置的页面 在Android上,后退按钮不在底部导航栏视图之间导航。...底部导航icon 点击底部导航icon将直接带你相关页面,或刷新当前页面。每个icon必须指向目的地,并且不能打开菜单或对话框。...滚动 底部导航栏滚动时可以动态地出现和消失: ·向下滚动隐藏底部导航栏 ·向上滚动显示 手势 在内容区域上使用左右滑动手势不会在一级页面之间切换。

4K90
您找到你想要的搜索结果了吗?
是的
没有找到

iOS 9人机界面指南(四):UI元素(下)- 腾讯ISUX

API注释 想要了解如何在代码定义添加联系人按钮,请参考UIButton....API注释 想要了解如何在代码定义信息按钮,可以参考UIButton. iOS包含了两种信息按钮样式:适用于浅色内容上的深色按钮,以及适用于深色内容上的浅色按钮。...因为表格视图的高度较大,内容滚动起来会更快。 4.3.10 进度视图 进度视图展示了任务或进程的进度(下图是iOS默认邮件App的工具栏)。 ?...当文本框里没有任何其它提示文字时,会展示占位符文本(placeholder text),名字、地址等。 根据输入内容的类型来指定不同的键盘类型。...在iPhone里,潜在风险的操作离列表底部越远,用户在关注Home键的时候就越不容易误点它。 ? 避免让用户滚动操作列表。如果你的操作列表存在过多按钮,用户必须要滚动才能看完所有操作。

13.2K30

中国土壤有机质数据集30弧秒分辨率

-999 Porosity,孔隙率 R float -- 30 -999 Root Abundance Description,根系丰度 RC float cm 30 -999 土层底部的深度(具有多个稠度分类的土壤...) RS float cm 30 -999 土层底部的深度(具有多个结构类别的土壤) S1 int -- 30 -999 土壤结构类型 S2 int -- 30 -999 土壤结构类型 SI float...(湿土) Wv float -- 30 -999 Wet Color value,土壤色值(湿土) date string 影像日期 代码: /** 中国土壤有机质数据集 */ //加载1981年国土壤有机质数据...var img = pie.ImageCollection('TPDC/china_soil_LSM/TK') //按数据集描述名称分为44个数据,分别对应表格的每一行,:AK、AL、AN……Wc...'#8BC84C','#EFDB09', '#E87A23', '#722124']}; //加载显示影像 Map.addLayer(img, visParams, '1981年国土壤有机质数据

12110

一个快速的 Vue3 无限滚动组件

在今天的教程,我们将使用 Composition API 创建一个 Vue3 无限滚动组件。这是我们将在它结束时构建的内容的预览。 如你所见,它是无限滚动,屏幕右侧的滚动条反映了这一点。...,但是如果我们滚动底部,什么都不会发生。...那么,现在让我们继续进行激动人心的部分:无限滚动! 4. Vue3 无限滚动 现在我们已经完成了所有设置,当用户向下滚动内容底部时,我们可以开始加载更多数据。...以下代码通过检查我们内容底部是否在屏幕上可见来工作。如果是,我们调用我们的方法来加载更多内容!...当我们向下滚动到当前内容底部时,应该会自动加载新内容。让我们看看我们有什么。 无限滚动组件的可能扩展 这只是创建Vue3无限滚动组件的介绍。有很多不同的方向可以改进它。

2.1K20

uni-app中使用scroll-view滚到底部时多次触发scrolltolower

一、前言、scroll-view基本属性: 前言:   前段时间使用scroll-view可滚动视图区域容器来做多个不同内容的展示(在我这个页面同时使用了三个scroll-view做数据展示),因为这几个展示的内容的数据都比较的多...但是使用scroll-view导致页面级没有滚动,则触底事件不会被触发,所以这里存在的问题是有时候无法触发onReachBottom。   ...第一个问题就是当滚动滚动底部时会多次触发scrolltolower事件,第二个问题是当页面由第一个scroll-view(该页面已经到了的最底部了)切换到第二个scroll-view时会自动滚动到页面的最底部...三、解决方案: 关于页面底部多次触发scrolltolower事件解决: 在scrolltolower触发事件设定一个定时器setTimeout(callback, delay, rest...为0,那么在切换到第二个页面的同时页面的竖向滚动条的位置会默认滚动到最顶部,从而解决了默认滚动到最底部加载多次数据的问题。

7.3K10

NSScrollView官方文档

当用户拖拽内容到顶部或者底部滚动条会越过任何被定义在contentInset的区域之内的范伟,例如navigation controller和toolbar。...设置vertical inset值限制了垂直滚动条,避免了越区域显示滚动条的问题。...滚动到特定的Offset:滚动到特定的top-left位置可以通过两种方式完成: setContentOffset:animated:方法,滚动内容特定的content offset。...scrollRectToVisible:animated:方法滚动到特殊的矩形区域,以确保区域在可视范围之内。 如何在scrollView内容不够的时候也可以进行拉伸:通过设置弹跳属性。...如何确保内容在zoom时是锐利的:如果zoom的内容是实时的,并且需要在zoom时是锐利的,那么你的app的类需要用Core Animation来绘制。

2.7K20

生活的科学(二)——超顺磁性

(如下视频所示),本推文对该问题进行分析,描述该现象的起因(燃烧过程染色剂Fe2O3转换为Fe3O4);与此同时,了解清华大学孙洪波课题组利用Fe3O4制作了微型机器人,能够通过磁、光、热控制机器人的运动...火柴过程,火柴头和火柴盒侧面火柴摩擦发热,放出的热量使KClO3分解,产生少量氧气,使红磷发火,从而引起火柴头上易燃物(硫)燃烧。...随着磁场控制的发展,具有磁响应功能的材料从嵌入离散的磁块或形成磁性纳米粒子复合材料,发展在体材料中对磁性材料非均匀分布进行设计。...4、将磁铁放在烧瓶底部,吸附合成好的纳米粒子。将上层清澈的溶液倒出,底部留下氧化铁纳米颗粒的沉淀。5、然后加入去离子水,重复步骤4,对样品进行洗涤三次,去除未反应的溶液。...6、最后,将得到的四氧化三铁纳米粒子浸没在 200mL 去离子水中,冲入一定量的氮气,封存待用。 四氧化三铁纳米粒子的磁性,无剩磁和矫顽力(超顺磁性特征)

1.1K20

iOS 9人机界面指南(四):UI元素(上) - 腾讯ISUX

标签栏: 是半透明的 始终出现在屏幕的底部 一个标签栏一次最多可承载5个标签(多于5个标签的时候,可以展示前4个标签和一个“更多”,并将其他的标签以列表形式收纳“更多”里面) 在横屏与竖屏情况下,高度均保持一致...API注释 想要了解如何在代码里定义滚动视图,请参考UIScrollView....当用户在视图中拖拽内容内容随之滚动;当用户轻扫屏幕时,内容将快速滚动——直到用户再次触摸屏幕或内容已经到达底部时停止。...如果你允许一个字符被放大充满整个屏幕的话,用户会很难阅读当前内容。 在页模式滚动视图中,可以考虑使用页面控件(page control)。...当你在滚动视图中使用页面控件的时候,最好禁用同一方向的滚动指示器(scroll indicator)。这样一来可以让用户聚焦页码控件上,并让他们有了一种唯一且清晰的方式来浏览当前内容

10.1K51

Web前端实现锚点功能的三种方式

默认为 "start",元素顶部将滚动到视窗顶部; 取值 "end",元素底部将和视窗底部对齐; 取值 "center",元素中线将和视窗中间对齐; 取值 "nearest",元素将就近对齐。...即,若页面向上滚动,则顶部对齐;若页面向下滚动,则底部对齐。 inline,定义水平方向的对齐, "start", "center", "end", 或 "nearest"之一。...用法: window.scrollTo(xpos, ypos); window.scrollBy 可将视窗向上下或左右移动指定坐标的距离。...div#root 元素顶部与视窗顶部对齐 window.scrollTo(domScrollLeft, domScrollTop + targetOffsetTop); window.scrollBy...(domScrollLeft, targetOffsetTop); 同理,滚动元素与视窗底部或与视窗中间对齐亦可取参计算。

2.8K31

优化在 SwiftUI List 显示大数据集的响应效率

本文将通过一个优化列表视图的案例,展现在 SwiftUI 查找问题、解决问题的思路,其中也会对 SwiftUI 视图的显式标识、@FetchRequest 的动态设置、List 的运作机制等内容有所涉及...但一旦为这些子视图添加了 id 修饰符,这些视图将无法享受到 List 提供的优化能力 ( List 只会对 ForEach 内容进行优化)。...虽然我们已经找到了导致进入列表视图卡顿的原因,但如何在不影响效率的情况下通过 scrollTo 来实现列表端点的滚动呢?...新的问题 细心的朋友应该可以注意,运行解决方案一的代码后,在第一次点击 bottom 按钮时,大概率会出现延迟情况(并不会立即开始滚动)。...对于拥有复杂结构子视图(尺寸不一致、图文混排)的 List 来说,在数据量大的情况下,任何的大跨度滚动( 例如直接滚动到列表底部 )都会给 List 造成巨大的布局压力,有不小的滚动失败的概率。

9K20

京东微信购物首页性能优化实践

我们在微信首页 CSS 加载完成、HTML 加载完成、JS 加载完成、首屏图片加载完成、第一张图片加载完成等关键节点插入测速点,并根据业务特点对关键内容上报智能监控平台,查询首屏 DOM 节点是否存在上报首屏可用率...1、首次绘制时间(FP): FP 标记浏览器渲染任何在视觉上不同于导航前屏幕内容内容的时间点 2、首次内容绘制时间(FCP): FCP 标记的是浏览器渲染来自 DOM 第一位内容的时间点,该内容可能是文本...对于底部导航依赖了一个独立的 CSS 文件,而且在很靠下的位置,我们把底部导航的代码提前搜索框的下面,并将样式内联。...3、滚动优化 当直接监听页面滚动时间时,由于滚动事件触发频率很高,即使一个简单的 handler 函数也会造成大量的开销。...经典的雅虎军规,许多规则到现在仍然具有重要的指导意义,我们在日常的开发也仍在严格遵守着,但是有一些则该谨慎看待。

1.5K20

京东微信购物首页性能优化实践

我们在微信首页 CSS 加载完成、HTML 加载完成、JS 加载完成、首屏图片加载完成、第一张图片加载完成等关键节点插入测速点,并根据业务特点对关键内容上报智能监控平台,查询首屏 DOM 节点是否存在上报首屏可用率...1、首次绘制时间(FP): FP 标记浏览器渲染任何在视觉上不同于导航前屏幕内容内容的时间点 2、首次内容绘制时间(FCP): FCP 标记的是浏览器渲染来自 DOM 第一位内容的时间点,该内容可能是文本...对于底部导航依赖了一个独立的 CSS 文件,而且在很靠下的位置,我们把底部导航的代码提前搜索框的下面,并将样式内联。...3、滚动优化 当直接监听页面滚动时间时,由于滚动事件触发频率很高,即使一个简单的 handler 函数也会造成大量的开销。...经典的雅虎军规,许多规则到现在仍然具有重要的指导意义,我们在日常的开发也仍在严格遵守着,但是有一些则该谨慎看待。

1.2K20

Ask Apple 2022 与 SwiftUI 有关的问答(下)

因此,如果你正在创建一个视图来显示可滚动内容,并可能进行选择操作,那么在 iOS 和 macOS 上使用 List 将有最好的体验。...创建从底部开始的滚动视图Q:我如何实现一个在底部对齐的滚动视图,在 macOS 上会不会有糟糕的性能?...A:你最好的选择是使用 ScrollView 和 ScrollViewReader,并在 onAppear 或新内容进来时滚动到最底部的视图。我不建议尝试旋转滚动视图。...Swiftcord[12] 的代码展示了如何在 SwiftUI 下实现倒置列表。阅读 优化在 SwiftUI List 显示大数据集的响应效率[13] 一文,了解苹果工程师推荐的方法。...将背景扩展安全区域Q:如果我有一个自定义的容器类型,可以接受一个顶部和底部的视图,是否有办法让 API 的调用者将所提供的视图的背景扩展安全区域内,同时将内容文本或按钮 )保留在安全区域内?

14.7K30

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

关于这个组件,有以下几个问题值得思考: 1,当我们说滚动时,涉及到外面的滚动容器与里面的可滚动实体两个对象,我们说滚动到顶部、滚动底部,指的是什么呢?是什么到顶部,什么到底部了?...6,有时候在一个后台vue页面,没有人动它,它自己抖动不止,这可能是什么情况? 7,如何在scroll-view自定义实现一个下拉刷新交互动画?...我们一般说「滚动到顶部、滚动底部」,指的还不是内部滚动实体滚动到了它所能达到的最大值、最小值,而是指滚动实体顶部边缘到达了滚动外框的顶部,及底滚动实体底部边缘到达了滚动外框的底部。...3.2,滚动锚定 scroll-anchoring 这个属性非常值得一提。它是控制「滚动锚定」特征的,即控制滚动位置不随内容变化而抖动,这种情况据说在用户浏览行为占比1%。...默认情况下,WXS在视图层执行,与页面JS的代码不是一路的,后者是在逻辑层执行的。 微信官方文档所讲,WXS是一套不一样的脚本语言,它是WeXin Script的简写。

14.2K30

Android开发笔记(一百六十四)仿京东首页的下拉刷新

一些第三方的开源库PullToRefresh、SmartRefreshLayout固然能让整体页面下滑,可是顶部的下拉布局很难个性化定制,至于状态栏、工具栏的背景色修改更是三不管。...倘若还没拉到顶,继续下拉动作属于正常的页面滚动;倘若已经拉到顶了,继续下拉动作才会拉出头部提示刷新。所以此处得捕捉页面滚动到顶部的事件,相对应的则是页面滚动底部的事件。...鉴于App首页基本采用滚动视图ScrollView实现页面滚动功能,故而该问题就变成了如何监听该视图滚到顶部或者滚到底部。...这个和事佬必须是下拉布局和滚动视图的上级布局,考虑下拉布局在上,而滚动视图在下,故它俩的上级布局继承线性布局LinearLayout比较合适。.../底部的事件,触摸监听器用于处理下拉过程的持续位移。

2.8K40

如何采集javascript动态加载网页

scroll_steps = 10 -- 调整滚动步数 local scroll_height = splash:evaljs("document.body.scrollHeight") -- 滚动到页面底部...window.scrollTo(0, document.body.scrollHeight); } ]]) for _ = 1, scroll_steps do scroll_to_bottom() -- 滚动到页面底部...html = splash:html() -- 返回HTML内容 } end 在上述代码,我们使用爬虫代理IP提高访问成功率,同时使用Splash脚本API导航目标URL并等待初始内容加载。...接下来,我们使用jsfunc创建一个JavaScript函数(scroll_to_bottom()),通过将垂直滚动位置设置为文档高度,将页面滚动底部。...我们在循环中使用此函数多次模拟滚动,每次滚动后等待页面滚动并加载新内容。 在最后一次滚动后,我们等待额外的内容加载,然后返回完全呈现页面的HTML内容

90530
领券