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

如何实现文本内容折叠并显示“...查看全部”?

我们可以将指定行数的textarea使用绝对定位absolute脱离文档流,放到文字的下方,然后通过文本容器的底部与textarea的底部相比较,如果文本容器的底部更靠下,说明超过指定行数。...第一次先以文本长度为截取长度,计算是否超过N行,没超过则停止计算;超过则取1/2长度进行截取,如果此时没超过N行,则在1/2长度到文本长度之间继续二分查找,如果超过则在0到1/2文本长度中继续二分查找。...四、其它 1、支持html串的考虑 现在的实现方案并不支持内容是html文本,如果需要支持HTML文本,问题将复杂许多。主要在于HTML字符串的解析和截断,不像文本字字符串那么简单。...重绘的影响还比较小,而如果截取的字符串行数发生改变,还会引发文本容器的高度变化,这时候就会导致浏览器回流,而文本容器在文档流中,回流将会影响整个文档。...获得截断长度后再截断文本,渲染到真正的文本容器即可。 本文仅作为一个简单的原理概述的示例,没有做这个处理,对具体细节感兴趣的同学,可以查看github仓库代码。

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

    【Flutter 专题】137 图解自定义 ACEFoldTextView 折叠文本

    和尚在学习 Flutter 过程中,有特别需求是对于文本过长的内容需要展示固定行数,而在文本右下角有提示用户点击展开和收起;和尚尝试自定义一个可折叠收缩的 ACEFoldTextView; ACEFoldTextView...和尚首先简单梳理了一下设计流程,如下图所示; 当文本内容所占据行数小于等于限制的最大行数时,默认展示整个文本内容,不会有【展开/收起】; 当文本内容所占据行数大于限制的最大行数时,默认展示最大行数内容...,并在右下角显示【展开】提示; 点击【展开】区域时,当文本内容最后一行内容与【展开】区域占据内容宽度之和小于最大宽度时,默认展示【收起】; 点击【展开】区域时,当文本内容最后一行内容与【展开】区域占据内容宽度之和大于等于最大宽度时...透明渐变【展开/收起】 和尚整体通过 Stack 层级嵌套方式在右下角显示可点击的【展开/收起】文本区,为了提高显示效果,并防止完全遮挡内容文本,和尚尝试了两种方式来实现颜色透明度渐变; 1.1...Text 文本内容折叠 和尚想实现文本折叠,首先需要预先得知 Text 文本在范围内占据的行数,一般都需要通过 TextPainter 等方式获取;和尚尝试了两种方式进行判断; 2.1 TextPainter.didExceedMaxLines

    1.3K20

    技巧:文本超过N行折叠内容并显示“...查看全部”

    多行文本超过指定行数折叠 二、实现原理 纯CSS很难完美实现这个功能,所以还得借助JS来实现,实现思路大体相似,都是判断内容是否超过指定行数,超过则截取字符串的前x个字符,然后然后和“...查看全部”拼接在一起...第一次先以文本长度为截取长度,计算是否超过N行,没超过则停止计算;超过则取1/2长度进行截取,如果此时没超过N行,则在1/2长度到文本长度之间继续二分查找,如果超过则在0到1/2文本长度中继续二分查找。...支持HTML串的考虑 现在的实现方案并不支持内容是HTML文本,如果需要支持HTML文本,问题将复杂许多。主要在于HTML字符串的解析和截断,不像文本字字符串那么简单。...重绘的影响还比较小,而如果截取的字符串行数发生改变,还会引发文本容器的高度变化,这时候就会导致浏览器回流,而文本容器在文档流中,回流将会影响整个文档。...获得截断长度后再截断文本,渲染到真正的文本容器即可。本文仅作为一个简单的原理概述的示例,没有做这个处理,对具体细节感兴趣的同学,可以查看github仓库代码。

    2.7K10

    技巧:文本超过N行折叠内容并显示“...查看全部”

    多行文本超过指定行数折叠 二、实现原理 纯CSS很难完美实现这个功能,所以还得借助JS来实现,实现思路大体相似,都是判断内容是否超过指定行数,超过则截取字符串的前x个字符,然后然后和“...查看全部”拼接在一起...第一次先以文本长度为截取长度,计算是否超过N行,没超过则停止计算;超过则取1/2长度进行截取,如果此时没超过N行,则在1/2长度到文本长度之间继续二分查找,如果超过则在0到1/2文本长度中继续二分查找。...支持HTML串的考虑 现在的实现方案并不支持内容是HTML文本,如果需要支持HTML文本,问题将复杂许多。主要在于HTML字符串的解析和截断,不像文本字字符串那么简单。...重绘的影响还比较小,而如果截取的字符串行数发生改变,还会引发文本容器的高度变化,这时候就会导致浏览器回流,而文本容器在文档流中,回流将会影响整个文档。...获得截断长度后再截断文本,渲染到真正的文本容器即可。本文仅作为一个简单的原理概述的示例,没有做这个处理,对具体细节感兴趣的同学,可以查看github仓库代码。

    2.4K20

    vim 代码折叠之设置默认代码不折叠

    配置 foldmethod 可以定义折叠方式,有6种可选方式: 1. manual //手工定义折叠 2. indent //用缩进表示折叠 3. expr //用表达式来定义折叠 4. syntax...//用语法高亮来定义折叠 5. diff //对没有更改的文本进行折叠 6. marker //用标志折叠 我选用 syntax 来定义折叠,这种方式比较简单,但是当配置完这个值后,你打开代码,就会发现...vim 默认把所有代码都折叠了,这显然不是我想要的,google一番后找到办法,设置 foldlevelstart 为99后,打开默认没有折叠。...配置: "使用语法高亮定义代码折叠 set foldmethod=syntax "打开文件时默认不折叠代码 set foldlevelstart=99 参考文献# vim的代码折叠:设置默认代码不折叠

    37930

    折叠绳子

    折叠绳子 原题链接 描述 农夫约翰有一条长度为 L 的绳子,可用于农场周围的各种任务。 绳子在不同的位置有 N 个绳结,包括两个端点处各有一个。...约翰注意到,在某些位置,他可以将绳子对折,这样,相对的绳索上的绳结就可以彼此完全对齐: image.png 请帮助约翰统计具有此属性的折叠点数。 允许在某个绳结处折叠,但不允许在端点绳结处折叠。...折叠后,较长的一侧可以有多余节点。 输入格式 第一行包含两个整数 N 和 L。 接下来 N 行,每行包含一个 0∼L 范围内的整数,表示一个绳结的位置。其中两行包含的数字分别是 0 和 L。...输出格式 输出有效折叠位置的数量。 数据范围 1≤L≤10000, 1≤N≤100 输入样例: 输出样例: 4 5 10 0 10 6 2 4 样例解释 有效折叠位置为 1,2,3,8。...分析 对于样例: image.png 可知,枚举j问绳子上的折叠点,若j点之前所有的点a[j]与a[i+i-j]的点状态相同,则说明该折叠点是有效的 注意绳子的折叠点可能为0.5、1.5,故将绳子长度变为原来的

    67130

    折叠绳子

    折叠绳子 原题链接 描述 农夫约翰有一条长度为 L 的绳子,可用于农场周围的各种任务。 绳子在不同的位置有 N 个绳结,包括两个端点处各有一个。...约翰注意到,在某些位置,他可以将绳子对折,这样,相对的绳索上的绳结就可以彼此完全对齐: 请帮助约翰统计具有此属性的折叠点数。 允许在某个绳结处折叠,但不允许在端点绳结处折叠。...折叠后,较长的一侧可以有多余节点。 输入格式 第一行包含两个整数 N 和 L。 接下来 N 行,每行包含一个 0∼L 范围内的整数,表示一个绳结的位置。其中两行包含的数字分别是 0 和 L。...输出格式 输出有效折叠位置的数量。 数据范围 1≤L≤10000, 1≤N≤100 输入样例: 输出样例: 4 5 10 0 10 6 2 4 样例解释 有效折叠位置为 1,2,3,8。...分析 对于样例: 可知,枚举j问绳子上的折叠点,若j点之前所有的点a[j]与a[i+i-j]的点状态相同,则说明该折叠点是有效的 注意绳子的折叠点可能为0.5、1.5,故将绳子长度变为原来的2倍处理

    11620

    折叠屏 ① | 华为资深专家解读折叠屏应用基础体验要求

    不久前华为发布了业界首份《折叠屏UX设计规范》,详细的介绍折叠屏的特性和体验要求,并根据不同的页面布局方式和场景提供针对性的设计说明。...为了帮助开发者高效完成适配工作,软件绿色联盟特别邀请了华为资深UX设计专家,从以下三个方面:①折叠屏应用基础体验UX规范、②单页面布局设计规范、③组合页面设计规范,为大家深度解读《折叠屏UX设计规范》。...接下来请看①折叠屏应用基础体验UX规范的内容: 一 应用基础体验要求 由于折叠屏手机具有折叠态和展开态随时切换的特性,在切换前后对连贯性有明确要求,其适配的标准不仅仅是兼顾手机/平板模式那么简单。...屏幕变大,手机在平板之间来回切换,这样就要求开发者的App在可折叠设备展开时,当前应用页面必须无缝延续到另一个屏幕,并可自动调整大小匹配新的布局,反之亦然。折叠屏时代的界面信息展示会是什么样的呢?...除了上面提到的界面信息展示,以新技术主导的折叠屏设备背后,更多挑战则是深入折叠屏设备的用户交互层面。屏幕宽窄的变化给交互设计也会带来相关的变化。在做用户交互的过程中,应该避免哪些情况发生?

    76440

    折叠屏 ② | 华为资深专家深入解读折叠屏单页面布局设计

    单页面布局提供的高度直观、高效实用的导航将有助于确保为用户提供最佳体验,特别是在应用在屏幕可自由切换的折叠屏手机上时 在上篇《折叠屏 ① | 华为资深专家解读折叠屏应用基础体验要求》中,为开发者详细讲解了应用基础体验要求...相对而言,折叠屏的大屏优势能够展示更多的内容,充裕的空间也为探索更多交互可能提供了条件。 二 单页面布局设计 折叠屏展开态下屏幕宽度变宽,为用户提供了高效便捷的使用体验。...案例1:栅格缩进效果 说明:根据人因测试结果显示,为了保证舒适的阅读效果,单行文本的字数不应该过多。中文的单行舒适字数是32个字符左右;最多可接受的是42个字符左右。...场景:纯段落文本 / 上图下文 /卡片的布局结构的场景,在其对应的栅格规格下,缩进的规则占用栅格数量进行布局。 案例2:栅格重复效果 说明:对于内容运营类列表信息,适合在大屏上展示更多内容。...无论折叠屏设备是折叠还是展开,单页面布局设计提供的高度直观、高效实用的效果将有助于为用户提供最佳体验。 ·END·

    1.5K20
    领券