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

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

屏幕上可以看见少量的抱怨的文章。例如: ? 用户关于卡片得反馈截图 太多的图片而且需要不停地滚动。我只是想快速的浏览新闻。 为了看所有的新闻我必须滚动大图。而且不能够一次查看加载的新闻。...于是通过分离 Themen des tages 重新设计和旋转木马导航的方法来解决这个问题,如下: ?...Spox.com - 重新设计 结果令人难以置信, Themen des tages 的点击次数增加了三倍,达到了点击总数的59%。 有趣的是,旋转木马导航的列表方法有相反的效果。...记住它只出现在第一张幻灯片,这个导航启用了自动播放。 移动模式 当我们研究在移动设备上的行为时, 我们访问了一个基于列表的 UI 网站(下面,左)和两个基于卡片的 UI 网站(下面,中,右)。...列表与卡片的其他示例 我相信我们不是唯一来解决这个问题的人。 例如,Google 已经对其搜索结果页进行AB测试。 ?

3.8K70

我做了一个在线白板!!!

相信各位写文章的朋友平时肯定都有画图的需求,笔者平时用的是一个在线的手绘风格白板--excalidraw,使用体验上没的说,但是有一个问题,不能云端保存,不过好消息它是开源的,所以笔者就在想要不要基于它做一个支持云端保存的...它想太多,原因其实很简单: 虚线是矩形没有旋转时的位置,我们点击在了旋转后的边框上,但是我们的点击检测是以矩形没有旋转时进行的,因为矩形虽然旋转了,但是本质上它的x、y坐标并没有变,知道了原因解决就很简单了...,而且绘制矩形也出问题了: 原因和矩形旋转一样,滚动只是最终绘制的时候加上了滚动值,但是矩形的x、y仍旧没有变化,因为绘制时是减去了scrollY,那么我们获取到的鼠标的clientY不妨加上scrollY...而当发生滚动后,比如向下滚动,那么上方的水平线没了,那我们只要补画一下上方的水平线,水平线我们是从-height/2开始向下画到height/2,那么我们就从-height/2开始再向上补画: const...导出图片不能简单的直接把画布导出就行了,因为当我们滚动或放大后,矩形也许都在画布外了,或者只有一个小矩形,而我们把整个画布都导出了也属实没有必要,我们可以先计算出所有矩形的公共外包围框,然后另外创建一个这么大的画布

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

    水平列表组件实战:打造精美图片库 进阶篇

    1.1 水平列表的进阶属性属性说明用途alignListItem设置列表项对齐方式控制列表项在交叉轴上的对齐方式scrollBar设置滚动条样式控制滚动条的显示和外观edgeEffect设置边缘效果控制列表到达边缘时的视觉反馈...onScrollIndex滚动索引事件监听当前显示的列表项索引onScroll滚动事件监听列表的滚动状态onScrollStop滚动停止事件监听列表停止滚动的状态onReachStart/End到达边缘事件监听列表到达开始...:selectedIndex和showPreview为ListItem添加了onClick事件处理函数,点击时更新selectedIndex并显示预览使用Stack组件作为根容器,可以在图片列表上方显示预览层添加了...,用于控制列表的滚动使用ListController的getScrollOffset和scrollTo方法获取和设置滚动位置四、水平列表的动画效果添加动画效果可以使水平列表更加生动和有吸引力。...onScrollIndex事件处理函数更新centerIndex4.2 列表项旋转效果我们可以为列表项添加旋转效果,创建一个类似旋转木马的效果:List() { ForEach(this.images

    19000

    革命性创新,动画杀手锏 @scroll-timeline

    示意 DEMO 再系统性学习语法之前,我们通过一个 DEMO,简单了解一下它的用法: 我们首先实现一个简单的字体 F 旋转动画: F #g-box {...#g-content,它的高度是 170vh,也就是可视界面高度的 1.7 倍,并且把 #g-box 容器放置在一个距离顶部 70vh 高度的地方: 有意思的来了,我们设置的旋转动画不会自动开始,只有当我们向下滚动的时候...,就是动画的开始时间都是从滚动一开始就开始了,刚好在滚动结束时结束。...有了这些状态值,配合 scroll-offsets,我们就可以精确控制滚动动画的触发时间。...本文到此结束,希望对你有帮助 更多精彩 CSS 技术文章汇总在我的 Github -- iCSS ,持续更新,欢迎点个 star 收藏。

    1.2K21

    前端学习(7)~css学习(一):字体属性和文本属性

    (3)我们须将英语字体放在最前面,这样所有的中文,就不能匹配英语字体,就自动的变为后面的中文字体: font-family: "Times New Roman","微软雅黑","宋体"; 上方代码的意思是...微软雅黑的英语别名: font-family: "Microsoft YaHei"; 宋体的英语别名: font-family: "SimSun"; 于是,当我们把字号、行高、字体这三个属性合二为一时,.../2.gif) ; /*列表项前设置为图片*/ margin-left:80px; /*公有属性*/ } 另外还有一个简写属性叫做list-style,它的作用是:将上面的多个属性写在一个声明中...比如说,我想让鼠标放在那个标签上时,光标显示手状,代码如下: p:hover{ cursor: pointer; } 另外还有以下的属性:(不用记,需要的时候查一下就行了) all-scroll...用于标示页面可以向上下左右任何方向滚动。 col-resize :  IE6.0 有左右两个箭头,中间由竖线分隔开的光标。用于标示项目或标题栏可以被水平改变尺寸。

    2.3K20

    html笔记

    ,比如一台手机,他有多少像素,是什么颜色等等 而标签的属性也是这个意思 下面是示例 的盒子需要删除对应td代码 列表 列表分为 有序列表ol 与 无序列表ul ul与ol标签里面的子内容都是li标签 ul与ol里面只允许有li标签,而li标签里面可以容纳其他标签 代码演示...位置定义是基于绝对定位 的,当我上面代码中给他 设置right(右) 与 bottom(下) 的时候,他就 和绝对定位一样 会先跑道右下角,然后数值为 0 ,也就是右边和下面 不需要增加外边距 ,我设置页面高度为...hidden 不显示超出的内容,超出部分直接隐藏 scroll 总是显示滚动条 auto 超出就显示滚动条,不超出则不显示 我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容...hidden ,则下面内容 直接隐藏了 ,第二个框我设置的 auto ,则 超过 了他才会显示 滚动条 ,第三个即为 scroll ,无论是不是超过 都显示 滚动条 outline轮廓线 input的文本框或者文本域等空间选中的时候总会有轮廓线

    2.3K10

    Unity基础教程系列(新)(一)——游戏对象和脚本(Creating+a+Clock)

    (选中clock之后,检视窗口的显示) Title下方是游戏对象所有组件的列表。该列表始终在顶部有一个Transform组件,这是我们当前所有的时钟。它控制游戏对象的位置,旋转和比例。...确保它具有与我们的时钟相同的Transform值。 ? ? (GameObject代表一个圆柱体) 为什么我的圆柱体看起来更暗?...在Unity中,X轴指向右,Y轴指向上方,Z轴指向前方。因此,让我们在设计时钟时要牢记相同的方向,这意味着当我们沿Z轴查看时钟时会看到其正面。...当它旋转起来的时候,会使得它看起来好像有一个小平衡力。 ? ? (时针) 时针臂必须绕时钟的中心旋转,但是改变其Z旋转会使其绕自己的中心旋转。 ?...但是,我们仍然必须将方法的参数定义为圆括号之间的逗号分隔列表。在我们的情况下,这只是一个空列表。 ? 现在,我们有了一个有效的方法,尽管它还没有做任何事情。

    5.4K20

    已中招!Android 基础面试常常吊死在这几个问题上……

    Android面试常常吊死的问题 1、面试官:Context它是什么,有什么用? 2、面试官:什么是Armv7? 3、面试官:为什么字节码不能在Android中运行?...应聘者:旋转屏幕时,当前的 Activity 实例将被破坏,并以新的方向创建Activity的新实例。旋转屏幕时,由于屏幕旋转时会重新创建布局,将首先调用onCreate() 方法。...17、面试官:RecyclerView 它是怎么工作的? 应聘者:它是一个列表,有自己的适配器,在 onBindViewHolder 方法中进行数据的绑定的! 面试官:我给你补充一下!...但是通过这种方式,当您到达列表的末尾时,将创建100个视图,并且的内存使用情况将与第一种方法相同。创建视图需要花费时间,因此您的滚动很可能不会很流畅。...这就是为什么 RecyclerView 会利用以下事实:滚动时,新行出现在屏幕上,而旧行消失在屏幕上。代替为每个新行创建新视图,而是通过将新数据绑定到旧视图来对其进行回收和重用! 应聘者:我学到了!

    2.8K20

    第4章-变换-4.2-特殊矩阵变换和运算

    由于 是旋转矩阵的级联,因此它显然也是正交的。因此,它的逆可以表示为 ,当然,尽管直接使用 的转置更容易。 图4.7. 欧拉变换,以及它如何与你改变航向、俯仰和滚动角度的方式相关联。...我们还想指出,相机在其视图空间中的向上方向与世界的向上方向没有特别的关系。转动你的头,视图是倾斜的,它的世界空间向上方向与世界不同。...当您使用欧拉变换时,可能会产生称为万向节死锁的问题[499,1633]。当进行旋转从而失去一个自由度时,就会发生这种情况。例如,假设变换的顺序是x/y/z。考虑仅围绕y轴旋转π/2,进行第二次旋转。...有了这样的 值,我们失去了一个自由度,因为矩阵只取决于一个角度, 或 (但不能同时取决于两者)。 虽然欧拉角在建模系统中通常呈现为 顺序,但围绕每个局部轴旋转,其他排序也是可行的。...所有这些都是指定三个独立旋转的有效方法。最后一个顺序,z/x/z,对于某些应用来说可能更好,因为只有当围绕x轴旋转 弧度(半旋转)时才会发生万向节死锁。没有完美的序列可以避免万向节死锁。

    3.9K40

    「前端进阶」高性能渲染十万条数据(虚拟列表)

    前言 在工作中,有时会遇到需要一些不能使用分页方式来加载列表数据的业务情况,对于此,我们称这种列表叫做 长列表。...说完首次加载,再分析一下当滚动发生时,我们可以通过计算当前滚动值得知此时在屏幕 可见区域应该显示的列表项。...实现 虚拟列表的实现,实际上就是在首屏加载的时候,只加载 可视区域内需要的列表项,当滚动发生时,动态通过计算获得 可视区域内的列表项,并将 非可视区域内存在的列表项删除。...列表项动态高度 在之前的实现中,列表项的高度是固定的,因为高度固定,所以可以很轻易的获取列表项的整体高度以及滚动时的显示数据与对应的偏移量。...为了使页面平滑滚动,我们还需要在 可见区域的上方和下方渲染额外的项目,在滚动时给予一些 缓冲,所以将屏幕分为三个区域: 可视区域上方: above 可视区域: screen 可视区域下方: below

    11.4K74

    Unity基础教程-物体运动(十一)——滚动(Animated Sphere)

    (预制体,引用自身的ball) 我们有一个纹理球,这很明显它只会滑动。 ? (滑动球) 让我们将与更新球相关的所有代码放在单独的UpdateBall方法中。将材质设置代码移到此处。...2.3 运动 为了使球滚动,我们必须旋转它,使它的表面运动与它的运动相匹配。最简单的完美情况是一个球在一条直线上滚动。在每个时刻,球表面只有一个点接触地面。...3.1 陡坡 当我们使用最后一个接触法线导出旋转轴时,球在空中滚动时就像在平坦的地面上一样。即使球沿墙壁滑动,也会发生这种情况。 ?...(稳定的跳跃) 3.3 空中和游泳时旋转 如果球在表面运动时滚动是合理的,但在空中或游泳时,技术上它不需要滚动。然而,由于我们的球体是自我推进的,它总是在滚动,这是很直观的。...在滚动之前,将此旋转与球的当前旋转相乘。仅当我们保持与物体的连接时才需要这样做,但是如果这样的话,当球静止不动时也必须这样做。 ? ?

    3.9K30

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

    自然列表:灵感来源聊天框接收到新消息时滚动到最新位置,总感觉这应该是一个很自然的行为,不需要这么多 Javascript 代码去实现滚动行为。...于是联想到了 Excel 表格,当我们在表格中第一行插入一行,这一行后边的内容会被很自然的挤下去。并不需要做什么滚动,这一行就会出现在最顶部的位置。...想到这里惊讶的发现,聊天框实际上不就是一个倒过来的列表吗? 列表最上边新增的行会把后边的行往下挤,而聊天框最下边新增消息需要把上边的消息往上挤。那假如我们将聊天框旋转 180° 呢...?...这时只需要在聊天列表的最开始设置一个空白的占位元素,把它的 CSS 设置为:flex-grow: 1;flex-shrink: 1;就可以实现消息少的时候自动撑开,把消息撑到顶部。...消息列表开始滚动时,占位元素又会被挤压消失,不影响列表滚动效果。

    2.9K21

    IOS开发:教你实现手机直播系统平台评论功能效果

    首先,需求 : 每当有人进入房间、评论、送礼物、第一次点赞直播消息时,消息列表都要及时显示并有从下往上滑动的效果。...效果如下: 1.png 映客某用户直播的图片,感谢主播让我有了效果图 怎么实现呢,怎么实现呢?...消息列表,必定是一个UITableView,每个消息是一个cell,每次接收到一条消息立刻添加到数据数组中,同时刷新UITableView,滚动到底部。 没错思路就是这样,但是问题来了. . ....即使UITableView有复用机制,也还是不行的,整个效果有一闪一闪的。可以试一下就知道了。 那么不能刷新,我们就用插入第n行,并且滚动到第n行 没错 . . . 就是这样实现效果了 . . ....那么问题又来了,一直往第一条添加,是有动画了,但是他是从上往下的 从上往下就从上往下,我们给所有的区域旋转180度,不就变成了从下往上了。 代码怎么写呢?

    2.4K00

    CSS animation和transition的性能探究

    将位图发送给合成线程 合成线程主要任务是: 利用GPU将位图绘制到屏幕上 让主线程将可见的或即将可见的位图发给自己 计算哪部分页面是可见的 计算哪部分页面是即将可见的(当你的滚动页面的时候) 在你滚动时移动部分页面...当它忙碌的时候,它就没空响应用户的输入了。 换个角度说,合成线程一直在尝试保证对用户输入的响应。它会在页面改变时每秒绘制60次页面,即使页面还不完整。...例如,当用户滚动一个页面时,合成线程会让主线程提供最新的可见部分的页面位图。然而主线程不能及时的响应。这时合成线程不会等待,它会绘制已有的页面位图。对于没有的部分则绘制白屏。...GPU 我之前提到了合成线程会使用GPU来绘制位图。让我们快速熟悉下GPU的概念。 如今大多数手机、平板和电脑都带有了GPU芯片。它非常的特别,它很擅长做某些事情,又很不擅长做其他事情。...GPUs在做如下操作时很快: 绘制东西到屏幕上 一次次绘制同一张位图到屏幕上 绘制同一张位图到不同的位置、旋转角度和缩放比例 GPUs很不擅长做: 加载位图到内存中 transition: height

    1.5K10

    OpenGL矩阵变换的数学推导

    说起OpenGL的矩阵变换,我是之前在我们的项目天天P图、布丁相机中开发3D效果时才比较深入地研究了其中的原理,一直想写这篇文章,由于很忙(lǎn),拖了很久,再不写我自己也要忘了。...当我们把模型放到世界坐标系中,模型就在世界坐标系里有了坐标,也就是原来在LOCAL SPACE中的那些坐标值,变成了世界坐标系中的坐标值,帮助我们完成这个变换的就是模型矩阵,对应图中的MODEL MATRIX...还没有,大家可以想像一下,我把一个东西放在世界坐标系的某个地方,我可以从近处看观察它,也可以从远处观察它,还可以从上下左右观察它,甚至还可以倒着观察它,因些还需要确定我们观察它的状态。...为什么不写成一个,注意绕轴旋转的先后顺序不同,最终的结果可能是不一样的,因此有三个独立的矩阵,根据实际情况组合。...第三行有4个值,现在都不知道是什么,我们需要构造4个未知数吗?对于解方程来说,在能解决问题的情况下,未知数能少就尽量少,不然只会徒增烦恼。 这里其实不需要4个未知数,为什么呢?

    1.7K30

    OpenGL矩阵变换的数学推导

    说起OpenGL的矩阵变换,我是之前在我们的项目天天P图、布丁相机中开发3D效果时才比较深入地研究了其中的原理,当时一开始时,也只是知道怎么去用这些矩阵,却不知道这些矩阵是怎么得来的,当出现一些莫名其妙的问题时...: 首先OpenGL有个世界坐标系,我们渲染的物体就是在世界坐标系中,我们的模型需要放到世界坐标系中,那么当我们还没放的时候,模型就和世界坐标系没有联系,它就还处于自己的坐标系中,我们叫做模型坐标系、局部空间...当我们把模型放到世界坐标系中,模型就在世界坐标系里有了坐标,也就是原来在LOCAL SPACE中的那些坐标值,变成了世界坐标系中的坐标值,帮助我们完成这个变换的就是模型矩阵,对应图中的MODEL MATRIX...还没有,大家可以想像一下,我把一个东西放在世界坐标系的某个地方,我可以从近处看观察它,也可以从远处观察它,还可以从上下左右观察它,甚至还可以倒着观察它,因些还需要确定我们观察它的状态。...为什么不写成一个,注意绕轴旋转的先后顺序不同,最终的结果可能是不一样的,因此有三个独立的矩阵,根据实际情况组合。

    6.9K62

    你所不知道的 CSS 动画技巧与细节

    (写完文章才发现这里应该叫正反旋转相消,图都截完了,大家心里清楚就好) 在动画中,旋转是非常常用的属性, { transform: rotate(90deg); } 那旋转有一些什么高级点的技巧呢?...既然如此,我们继续思考,如果我在其中旋转的一个祖先元素上,添加一些别的动画会是什么效果?想想就很刺激啊。 ?...这个是常规思维,如果我们的元素一开始是没有过渡效果,只有 hover 上去才给它添加一个过渡,又或者一开始元素是有过渡效果的,当我们 hover 上去时,取消它的过渡,会碰撞出什么样的火花呢?...hover 离开的时候,它的原本的过渡又回来了,这个时候它会从有颜色到透明值缓慢渐变消失。...假设我们有一个轮播图,有一个 ul 列表,结构如下: 轮播图 <ul class="list

    1.1K31

    黑客利用GitHub将恶意软件推送至用户电脑以盗取凭据

    此代码会创建隐藏的div,并在短暂延迟后在正常网站内容上方显示假的Flash Player更新banner。 ?...当我们将它发送给Malwarebytes的Jerome Segura时,他认为该文件是LokiBot信息窃取恶意软件的变体。...攻击者之所以要频繁的重新打包二进制文件,是为了尽可能的躲避杀毒软件的查杀,然后将更改推送到Git,这就是为什么我们在VirusTotal上主要看到通用和启发式警告的原因。...将GitHub作为恶意软件的托管环境 GitHub对于攻击者而言作为托管环境有以下几点优势: 它可以免费使用 它适用于自动化 该域名信誉度高,不易被安全工具列入黑名单 虽然我们可以对该账户投诉并最终禁用它...虽然这种攻击媒介现在不那么受欢迎,但你仍然不能低估它潜在的威胁。 降低凭据窃取恶意软件带来的风险 自2008年开始我的网站安全工作以来,我对站点管理员的建议并没有太大改变。

    1.9K70

    你所不知道的 CSS 动画技巧与细节

    (写完文章才发现这里应该叫正反旋转相消,图都截完了,大家心里清楚就好) 在动画中,旋转是非常常用的属性, { transform: rotate(90deg); } 那旋转有一些什么高级点的技巧呢?...既然如此,我们继续思考,如果我在其中旋转的一个祖先元素上,添加一些别的动画会是什么效果?想想就很刺激啊。 ?...这个是常规思维,如果我们的元素一开始是没有过渡效果,只有 hover 上去才给它添加一个过渡,又或者一开始元素是有过渡效果的,当我们 hover 上去时,取消它的过渡,会碰撞出什么样的火花呢?...hover 离开的时候,它的原本的过渡又回来了,这个时候它会从有颜色到透明值缓慢渐变消失。...假设我们有一个轮播图,有一个 ul 列表,结构如下: 轮播图 <ul class="list

    79530

    React虚拟列表在移动端的优化方法有哪些?

    在移动端实现 React 虚拟列表时,需要针对移动设备的性能特点(如屏幕尺寸小、算力有限、触摸交互等)进行特殊优化。以下是关键的优化方法及实现思路:1....优化点:根据屏幕高度动态计算可见项目数量,避免固定值导致的过度渲染隐藏滚动条(移动端常见设计),减少视觉干扰旋转屏幕时重新计算可视区域,保证适配性2....列表内容 */} );};export default MobileAdaptiveList;优化点:使用 { passive: true } 优化滚动事件监听,避免触摸滑动时的页面阻塞防抖处理滚动事件...关键措施:固定项目尺寸:尽量使用固定高度的列表项,避免动态计算尺寸的性能开销减少布局偏移:通过占位元素预先占据空间,避免滚动时的布局抖动使用CSS containment:隔离列表项的渲染范围,提升浏览器优化能力...数据优化:预加载、懒加载、控制单次加载量库选型:优先选择轻量库(如react-window),减少包体积通过以上方法,可在移动端实现流畅的长列表体验,避免因大量DOM节点或频繁渲染导致的卡顿问题。

    22910
    领券