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

动态生成DOM元素高度及行数获取与计算方法

背景 在开发IM项目过程中,经常会有出现一些需要计算DOM高度,然后超出若干行隐藏等需求。很多时候,需要计算高度DOM元素都是动态生成,我们无法在数据渲染前获取到它高度。...但是,如果我们需要获取到这段在内存中未渲染动态文本,也能够通过如下几个方法。...因为在实际页面中进行计算能够保证页面高度计算没有任何误差,因此我们需要一个实际场景,让浏览器来帮助我们进行高度计算。...具体实现代码可以参考如下示例: export default function getLines(element = 'div', style = {}, html = '') { let node...总结 获取动态元素高度一直都是IM项目中一个重要需求,自己在这个方面也踩了许多坑,因此写了这一篇博客来进行记录,同时其他人如果看到了也可以避免一些常见问题。

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

04-老马jQuery教程-DOM节点操作及位置和大小

这个函数原理是检查提供第一个元素(它是由所提供HTML标记代码动态生成),并在它代码结构中找到最上层祖先元素--这个祖先元素就是包裹元素。...参数: html, String类型,HTML标记代码字符串,用于动态生成元素并包裹目标元素 element, Element类型,用于包装目标元素DOM元素。...这个函数原理是检查提供第一个元素并在它代码结构中找到最上层祖先元素--这个祖先元素就是包装元素。...(htm|element|fnl)方法 概述 将每一个匹配元素子内容(包括文本节点)用一个HTML结构包裹起来 这个函数原理是检查提供第一个元素(它是由所提供HTML标记代码动态生成),并在它代码结构中找到最上层祖先元素...参数 html, String类型,HTML标记代码字符串,用于动态生成元素并包装目标元素 element,Element类型,用于包装目标元素DOM元素 fn,Function类型,生成包裹结构一个函数

2.1K90

04-老马jQuery教程-DOM节点操作及位置和大小

这个函数原理是检查提供第一个元素(它是由所提供HTML标记代码动态生成),并在它代码结构中找到最上层祖先元素--这个祖先元素就是包裹元素。...这个函数原理是检查提供第一个元素并在它代码结构中找到最上层祖先元素--这个祖先元素就是包装元素。...参数 html, String类型,HTML标记代码字符串,用于动态生成元素并包装目标元素 elem, Element类型,用于包装目标元素DOM元素 示例 $("p").wrapAll("<div...(htm|element|fnl)方法 概述 将每一个匹配元素子内容(包括文本节点)用一个HTML结构包裹起来 这个函数原理是检查提供第一个元素(它是由所提供HTML标记代码动态生成),并在它代码结构中找到最上层祖先元素...参数 html, String类型,HTML标记代码字符串,用于动态生成元素并包装目标元素 element,Element类型,用于包装目标元素DOM元素 fn,Function类型,生成包裹结构一个函数

6.1K00

dynamic-css 动态 CSS 库,使得你可以借助 MVVM 模式动态生成和更新 css, js 事件和 css 选择器苦海中脱离出来

dynamic-css 使得你可以借助 MVVM 模式动态生成和更新 css,从而将本插件到来之前,打散、嵌套在 js 中修改样式代码剥离出来。...对于一些原本需要复杂 js 判断动态 css,用 dynamic css 表达式几行代码搞定。 举两个例子: 元素跟随鼠标移动 实现它源代码: <!...CSS 不是静态,其值会随绑定变量更新而更新,从而实现一个动态 style */ .mouse-follow { position: absolute; /* layout.mouse.pageY... 经过不懈努力取得结果和别人通过关系取得结果一样甚至更差,那努力还有什么意义呢?... 如果是用 js 来实现这些效果的话,就会充斥着各种事件,各种变量加加减减,和 css 选择器更新,代码挺丑,而且和 dom 类似

1.7K20

这实现牛逼了,原来阮大佬博客阅读进度功能这么简单

div 实现,外部 div 提供底色背景,内部 div 显示阅读进度 </...20% 时,得到效果图如下: 只截取部分图,并放大了浏览器,要不灰色部分会非常长 台子搭好了,下面就是通过 js 来动态计算 read_pro_inner width 即可。...类似于 js 功能检查,可以检查 CSS 中某一属性或功能当前浏览器是否支持。...background: linear-gradient(to right top, #0089f2 50%, #DDD 50%); /* 通过 calc 函数配合 100vh 就可以总长中删除一屏高度...: no-repeat; } 复制代码 设置盖住蓝块白块 阅读进度条高度为 3px ,因此设置白块高度为 100% \- 3px,可以另外加一个 div 元素来设置白块,但小包推荐使用为元素

65830

虚拟滚动之原理及其封装

统计时间应该是 开始创建元素 到 可以进行响应 时间,所以一个合理做法是把计算放 setTimeout(function() {}, 0) 中。...先说懒渲染,经常跟移动端打交道程序员对于懒加载应该并不陌生。二者其实可以认为是一个东西。但这里懒渲染更加侧重于列表优化角度说明问题。...可视区渲染有个更出名名字,叫做虚拟滚动——指的是只渲染可视区域列表项,非可见区域完全不渲染,在滚动条滚动时动态更新列表项。...初始化字段 数据类型 说明 itemHeight Number 每项高度 container DOM 滚动容器 containerContent DOM 滚动内容 maxHeight Number 不撑起滚动条最大高度..., render, initData, itemEventHandlers, isDebounce } = opts; // 计算最大高度

9.7K20

几个小处理提高前端性能

适当定高,例如如果div内容可能有高度差异动态内容载入。什么意思?例如右上角个人用户信息是页面渲染完毕之后动态载入。...但是,有可能会出现高度20像素小图标,,而文字所占据高度为12px * 1.4 = 16.8px, IE6又存在行高被拒悲剧。...因此,如果这部分div不定高,就会出现个人信息载入后,整个页面下沉几像素(3.2像素?)页面重绘问题。...图片设定不响应重绘尺寸,如果你不设定尺寸、同时外部容器没有定死高宽,则图片在首次载入时候,占据空间会0到完全出现,左右上下都可能位移,发生大规模重绘。...现代浏览器可以渐进使用CSS3 transition实现动画效果,比改变像素值来高性能。 不使用iframe,据说开销最大DOM元素。

1.1K20

动态监听DOM元素高度变化

他需要在内容不超过一个最大高度时候完全显示所有内容,超过最大内容后仅展示最大高度范围内内容,超出部分隐藏,并通过一个按钮 “展示更多” 来给用户展示更多选择。...在这看似简单需求当中,其实涉及到了一个难点,那就是怎样动态监听到内容区域高度变化?...因此,内容区域高度动态变化,且变化时间点是未知,那么怎样知道我们内容区高度发生了变化呢?...经过处理之后,确实在容器高度小于指定高度时候,“展示更多” 按钮不会展示,超过最大值之后,会将该按钮展示出来, 但是也遇到了一个问题,操作按钮是有高度,如果我们内容高度介于最大高度 - 按钮高度...到 容器最大高度之间, 按钮会产生显示一部分,同时又隐藏一部分效果,这可不是我们想要

4.8K30

Vue隐藏技能:运行时渲染用户写入组件代码!

动态实例方案与动态组件方案大致相同,都要通过 computed 属性,生成component对象和scopedStyle对象进行渲染,但也有些许区别,动态实例比动态组件需要多考虑以下几点: 需要一个稳定挂载点... vue2.0 开始,vue 实例挂载策略变更为,所有的挂载元素会被 Vue 生成 DOM 替换[10],在此策略下,一旦执行挂载,原来 DOM 就会消失,不能再次挂载。...,但对于自定义组件渲染,需要动态计算高度,固定高度是不行。...之所以没有直接使用 body 高度,是因为 body 有默认高度,当被渲染组件高度小于 body 高度时,直接使用 body 高度是错。...在一些不太安全(xss 注入可能会泄露 cookie 中身份信息)系统中,推荐使用最后一种跨域组件挂载方案,通过完全隔离策略可以最大程度降低风险,当然此方案也有很多局限性。

3.6K10

【Canvas】266- 更优雅地基于 canvas 在前端画海报

如果生成图片高度需要自适应多个子元素高度?这需要写很多额外逻辑。 如果两种不同样式文字横向居中显示?又要疯狂计算再传入 x y 定位,总之涉及到自适应样式需求我们就得在逻辑中频繁计算。...那么采用什么类型 schema 去收敛 api,以及最大化在不同平台兼容?...这里采用了 json 形式去配置化参数生成图片。...如果生成图片高度需要自适应多个子元素高度?这需要写很多额外逻辑。 如果两种不同样式文字横向居中显示?又要疯狂计算再传入 x y 定位,总之涉及到自适应样式需求我们就得在逻辑中频繁计算。...根据 css 计算得到盒模型数据,是画图库代码量最大步骤。以下就是计算盒模型计算流程。

1.5K30

这个前端竟然用动态规划写瀑布流布局?给我打死他!

分析 预览图中可以看出,虽然图片高度是不定,但是到了这个布局最底部,左右两张图片是正好对齐,这就是一个比较美观布局了。 那么怎么实现这个需求呢?...动态规划中有一个很著名问题:「01 背包问题」,题目的意思是这样: 有 n 个物品,它们有各自体积和价值,现有给定容量背包,如何让背包里装入物品具有最大价值总和?...也就是 总高度为3,在 [1, 2, 3] 这几种高度图片中,尽可能挑出 总和最大,但是又小于3 图片集合,装进数组中。...横坐标 x 是:用当前考虑图片集合,去尽可能凑到总高度为 y 时,所能凑成最大高度 max,以及当前所使用图片下标集合 indexes,取值范围是 0 ~ 高度一半。...,所以 dp[1][2] 最优解选择 { max: 5, indexes: [0, 1] } 仔细理解一下,相信你可以看出动态规划过程,最小子问题 只考虑图片1出发,先求出最优解,然后再用子问题最优解去推更大问题

1K30

前端面试题-每日练习(3)

SVG 绘图很容易编辑与生成,但功能明显要弱一些。canvas可以完成动画、游戏、图表、图像处理等原来需要Flash完成一些功能。 8.表单基本组成部分有哪些,表单主要用途是什么?...(1)、父级div定义 height 原理:父级div手动定义height,就解决了父级div无法自动获取到高度问题。...优点:简单、代码少、容易掌握 缺点:只适合高度固定布局,要给出精确高度,如果高度和父级div不一样时,会产生问题 建议:不推荐使用,只建议高度固定布局时使用 (2)、结尾处加空div标签...(4)、父级div定义 overflow:hidden 原理:必须定义width或zoom:1,同时不能定义height,使用overflow:hidden时,浏览器会自动检查浮动区域高度 优点...(5)、父级div定义 overflow:auto 原理:必须定义width或zoom:1,同时不能定义height,使用overflow:auto时,浏览器会自动检查浮动区域高度 优点:简单

13020

【译】Web中图像技术总结,前端开发中各种图片引入优点缺点及实例

前端开发人员在构建网站时需要做出决定之一就是添加图片技术。它可以是HTML ,也可以是通过CSS背景生成图片,也可以是SVG 。...对于 来说,除非我们为覆盖层添加一个单独元素,否则无法做到这一点。 3. SVG SVG被认为是图像,它最大功能在于缩放而不影响质量。...解决方案1要点: 解决方案只有在图像不重要情况下才是好 当无法后端CMS动态更改图片时 Demo 4.1.2 Hero - 解决方案2 对于此解决方案,我们将使用HTML图像。...当Logo具有渐变时,Illustrator或Sketch等设计应用程序将其导出过程可能并不完美,有时会中断。...我在检查Facebook新设计时注意到了它。

5.5K20

uniapp中scroll-view局部滚动各种场景

这个实现稍微难一点:js 实现:直接获取到屏幕整个高度,然后减去上下模块高度就是中间 scroll-view 高度了。...,然后中间部分在 scroll-view 标签外面再套一个div,这个div flex 设为 1 自动设置高度,然后 scroll-view height 设为 100%。...不过注意最外层盒子一定要是已知高度,像整个页面这种其实也是已知高度,否则无效。...,其实就是我们 pc 上常用设置最大高度 max-height,如果超过了最大高度则出现滚动条,很不幸在小程序这种方式滚动不了。...一般用在弹窗中比较多,设置一个固定高度确实可以实现,但是内容较少时会出现大量留白,用纯 css 我是没找到实现方式,因为需要动态获取到内容高度才知道要给 scroll-view 设置多高。

67330

一文了解 ng-template, ng-content, ng-container, 和 *ngTemplateOutlet区别

原文 今天当我在做 Angular 开发时,一个知识点引起了我注意: ? 在检查 DOM 时,我看到 ngcontent 被 Angular 应用于元素。...可以理解成把 div 标签放置到 ng-container 这个虚无容器里,当 div *ngIf 指令布尔值为 false 时,虚无容器连同里面的 div 标签压根就不会生成。...考虑一个简单 组件,下图是其本身 HTML 定义: ? 显然,footer 区域允许动态配置内容。...下图展示了如何为 footer 区域动态注入自定义 footer 内容。这种用法称为单一投射。 ?...我们在这里试图实现是显示 父组件接收到页眉、正文和页脚。 如果未提供其中任何一个,我们组件将在其位置显示默认模板。 因此,创建了一个高度定制组件。

5.1K40

【小程序_02】布局方式

-- 单位:长度、百分比、cover、contain cover把背景图像扩展至足够大,以使背景图像完全覆盖背景区域(不考虑图片是否有超出部分) contain把图像图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域...再平分剩余空间 stretch 设置子项元素高度平分父元素高度 <!...,媒体查询我们要按照从小到大或者大到小顺序来写 3. less 3.1 less 介绍 css 弊端 CSS 需要书写大量看似没有逻辑代码,CSS 冗余度是比较高。...Less是一门 CSS 预处理语言,它扩展了CSS动态特性 less 中文网 3.2 less 安装 ​ ① 安装nodejs,可选择版本(8.0),网址:http://nodejs.cn/download...大小写敏感 @color: pink; div { color: @color; } 3.4 less 编译 HTML 不能直接使用 less 文件,需要将其编译生成 css 文件后 HTML

1.3K20
领券