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

如何使节点数组在视图中居中?

要使节点数组在视图中居中,可以使用以下步骤:

  1. 首先,确定视图的宽度和高度,可以通过获取视图的容器元素的宽度和高度来实现。例如,使用CSS的widthheight属性或JavaScript的clientWidthclientHeight属性。
  2. 然后,确定节点数组的总宽度和总高度。可以通过遍历节点数组,获取每个节点的宽度和高度,并将它们相加得到总宽度和总高度。
  3. 计算水平和垂直方向上的偏移量。水平方向上的偏移量可以通过将视图的宽度减去节点数组的总宽度,然后除以2来计算。垂直方向上的偏移量可以通过将视图的高度减去节点数组的总高度,然后除以2来计算。
  4. 对节点数组中的每个节点应用偏移量。可以使用CSS的transform属性或JavaScript的style.leftstyle.top属性来实现。将水平方向上的偏移量应用到每个节点的水平位置,将垂直方向上的偏移量应用到每个节点的垂直位置。

这样,节点数组就会在视图中居中显示。

以下是一个示例代码片段,演示如何使用JavaScript将节点数组居中显示在视图中:

代码语言:txt
复制
// 获取视图容器元素
const container = document.getElementById('container');

// 获取节点数组
const nodes = document.getElementsByClassName('node');

// 计算视图的宽度和高度
const viewWidth = container.clientWidth;
const viewHeight = container.clientHeight;

// 计算节点数组的总宽度和总高度
let totalWidth = 0;
let totalHeight = 0;

for (let i = 0; i < nodes.length; i++) {
  totalWidth += nodes[i].clientWidth;
  totalHeight += nodes[i].clientHeight;
}

// 计算水平和垂直方向上的偏移量
const offsetX = (viewWidth - totalWidth) / 2;
const offsetY = (viewHeight - totalHeight) / 2;

// 应用偏移量到每个节点
for (let i = 0; i < nodes.length; i++) {
  nodes[i].style.left = offsetX + 'px';
  nodes[i].style.top = offsetY + 'px';
}

请注意,这只是一个示例,具体的实现方式可能因应用场景和具体需求而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

CSS banner图响应式居中显示

图片 PC 网站首页,banner 图作为网页中最大的一张图片,传达网页的的主要信息的同时,也吸引着浏览者的所有注意力,所以 banner 图的展示方式直接影响着用户的体验,今天我们就来聊聊 banner...图如何在不同尺寸的口中居中显示 我们都知道,通过background-size: cover;属性能够将图片居中显示,但在窗口拉伸的过程中,图片往往很随着拉伸而变得惨不忍睹,所以我们可以将图片独立出来...,并通过隐藏图片两侧的方式,来达到 banner 图不同尺寸下居中显示的目的 HTML 结构如下 !...margin: 0 auto; } .banner img { width: 1920px; margin: 0 -355px; vertical-align: middle; } 当口宽度与图片宽度同为...1920 px 时,Nian 糕正好处于视图居中位置,页面效果如下图所示 当口宽度为 1210 px 时,Nian 糕依旧图中居中显示,如下图所示 本篇的内容到这里就全部结束了,源码我已经发到了

2.2K30

Flutter 像素编辑器#05 | 缩放与平移

其中有几个个关键的难点: 如何通过手势、鼠标操作,触发缩放和平移事件。 绘制区域进行缩放平移变换后,落点在单元格内的校验逻辑如何适应。 如何支持行列数不同的像素网格。 1....这里希望当口尺寸变化时,可以将网格区域适配呈现在中间,这就是 centerContent 的作用。它将变换矩阵重置为单位矩阵,并设置偏移量使视图居中。...视图层处理 视图层处理最重要的一是,绘制时使用相机中的 transformer 矩阵来对编辑区域的内容进行矩阵变换。...点击格坐标校验 由于点击事件回调的触点时相对于口左上角的偏移量。当口进行缩放或者平移时,就需要进行相应的转换。将触点映射到变换后的坐标系中。...下面画个移动时的示意图: 右图移动之后,触点在点击第第二排第二个时,触点的坐标还是以口左上角为起点,我们需要将其原点视为 网格区域的左上角才能计算出正确的网格位校验。

5610

图形编辑器开发:缩放至适应画布

之前我们实现了画布缩放的功能,本文来讲讲如何让内容缩放至适应画布大小(Zoom to fit)。 我们看看效果。...更多填充策略,看我的这篇文章: 《容器内显示图片的五种方案:contain、cover、fill、none、scale-down》 我们需要比较 bbox 的宽高比和口 viewport 的宽高比。...bbox 的高进行缩放 newZoom = vh / bbox.height; } else { // 基于宽 newZoom = vw / bbox.width; } 然后就是 小矩形大矩形下垂直水平居中...加了 50px 的边距,这样内容就不再紧贴口边缘了,选中图形图像的控制不至于跑到口外。 思路是,计算 newZoom 时用的 vw 和 vh,原来的基础减去 padding,再去计算。...需要注意的是,后面计算居中时,还是要要用原来的 viewport.x 和 viewport.y。 计算缩放比,对象是减去 padding 的口宽高;计算位置,对象是原来的口宽高。

23730

使用这种技巧,可以大大地提高前端布局效率

CSS 中使用wrapper可能有多种方式,这些方式中,有些会带来一些问题。 本文中,将介绍 CSS中 的 wrapper 布局,它们如何工作,如何使用它们以及何时不使用它们。...要考虑的重要事项是左侧和右侧添加padding。 当口大小小于 wrapper 的最大宽度时,这将导致 wrapper 边缘粘在口上。...padding作为一种保护策略,避免宽度不足时让 wrapper 粘在口边缘。...important,我们可以确保做到这一。 全屏中的 Wrapper 某些情况下,如果某个部分的背景口宽度为100%,并且其中包含wrapper`,则可能会出现这种情况。...为了更好地理解这两种模式,我们来一起探讨如何构建其中的每种模式。 内容居中 你可能想在不使用 wrapper前提下让内容居中

3.9K20

2018年各大互联网前端面试题五(今日头条)

一个div,高度是宽度的50%,让该div的宽度占据整个屏幕,然后能自适应,垂直居中,怎么实现?...针对移动浏览器端开发页面,不期望用户放大屏幕,且要求“口(viewport)”宽度等于屏幕宽度,口高度等于设备高度,如何设置? 概念 Bom是什么?列举你知道的Bom对象。...如何理解跨域。 cookie是什么,怎么存储。 框架 用过NodeJS的EventEmitter模块吗,它是怎么实现功能的,步骤是什么? 说说Vue框架,对于对象引用的情况呢?...手写bind函数 如何用CSS实现一个三角形 promise、setTimeout、async/await的执行顺序。 arguments是数组吗?怎么实现用它调用数组方法?类数组数组的区别是什么?...文末福利: 注「编程微刊」公众号 ,微信后台回复「领取资源」,获取IT资源200G干货大全。

1.4K30

把所有的东西都对齐吧 - 谈谈垂直居中的解决方案

"44年前我们就把人类送上了月球了,但现在我们仍然无法css中实现垂直居中 -James Anderson" 难题 CSS中对元素进行水平居中是非常简单的;如果是一个行内元素,就对父元素设置text-align...但是没有任何技巧十全十美,我们需要注意几点: 我们有时不能选择绝对定位,他对整个布局影响太过强烈 如果需要居中的元素已经高度上超过了口,那它的顶部部分就会被口裁掉 某些浏览器中,这个方法可能会导致元素的显示模糊...;但是缺少left和top的情况下,如何吧这个元素放在容器正中心呢?...值与单位(第三版)定义了一套新的单位,称为口相关的长度单位 vm是与口宽度相关的.1vm相当于口的1% 与vw类似,1vh相当于口的1% 当口宽度小于高度时,1vmin等于1vw,否则等于1vh...magin:50vh auto 0; transform:translateY(-50%); } 我们可以看到,其效果堪称完美.这个技巧更适合于口中居中的场景.

2.2K60

解决CSS垂直居中的几种方法(基于绝对定位,基于口单位,Flexbox方法)

一、代码初始化     我们基于如下这段HTML代码,将id='content'的div元素id='box'的div张垂直居中。...这段代码本质上做了这样几件事情:先把这个元素的左上角放置口(或最近的、具有定位属性的祖先元素)的正中心,然后再利用负外边距把它向左、向上移动(移动距离相当于它自身宽高的一半),从而把元素的正中心放置口的正中心...通常情况下,对那些需要居中的元素来说,其尺寸往往是由其内容来决定的。如果能找到一个属性的百分比值以元素自身的宽高作为解析基准,那我们的难题就迎刃而解了!...三、基于口单位的解决方法     假设我们不想使用绝对定位,仍然可以采用translate()技巧来把这个元素以其自身宽高的一半为距离进行移动;但是缺少left和top的情况下,如何把这个元素的左上角放置的容器的正中心呢...不过幸运的是,如果只是想把元素相对于口进行居中,仍然是有希望的。CSS值与单位(第三版)定义了一套新的单位,称为口相关的长度单位。       1) vw 是与口宽度相关的。

1.7K70

【技术创作101训练营】手把手教你用Canvas打造字母雨黑客效果

设置canvas画布样式 (对应的宽、高设置为100%,居中显示,margin:0px auto表示布局居中显示)。 最后使用JavaScript页面加载执行代码。...初始化的时候,获取对应的canvas画布id属性,用变量去储存 屏幕宽度,高度。创建一个255个元素的数组,并设置初始化值为“1”,(即255个元素都是字符串1)。...第二次的时候,字母呈矩形往下掉落,依次循环,如图2所示,是不是很有黑客帝国的既感了呢? 总结 以上我们简单阐述了字母雨的实现过程,下面我们来简单总结下。...本文基于Canvas基础,介绍了如何实现像是下雨一样滑下的字母效果。...该项目中,依次讲解了如何随机实现字母掉落、元素位移、利用fromCharCode() 方法等知识,并实现了将Unicode 编码转为一个字符。

72800

【适配】425- 彻底搞懂移动Web开发中的viewport与跨屏适配

Q此处插入一个问题: 浏览器中,对页面进行放大的时候,口的大小如何变化? 2.1 viewport 的缩放与平移 回答上面的问题,口会变小。...3.1 窄屏设备的问题 移动互联网的早期,屏幕设备的物理像素宽度多数 320、480、640 等。而互联网世界的绝大多数站点又是针对 PC 设计的,其文档宽度普遍 800px 以上。...1vw 即表示当前口宽度的 1%,我们可以利用这一替代“rem+根节点 font-size”的等比缩放实现。...不做大的代码调整的话,等比缩放类的移动端网页, PC 上的合理展现方式应该是页面总宽度锁定在某个值,然后水平方向居中。(如下图) ?...滚动到视图中之前,口外部的内容屏幕上不可见。 ●当前可见的口部分称为可视口。这可以小于布局口,例如当用户进行缩放缩放时。该布局口保持不变,但视觉口变小。

2.8K30

彻底搞懂移动Web开发中的viewport与跨屏适配

Q此处插入一个问题: 浏览器中,对页面进行放大的时候,口的大小如何变化? 2.1 viewport 的缩放与平移 回答上面的问题,口会变小。...3.1 窄屏设备的问题 移动互联网的早期,屏幕设备的物理像素宽度多数 320、480、640 等。而互联网世界的绝大多数站点又是针对 PC 设计的,其文档宽度普遍 800px 以上。...1vw 即表示当前口宽度的 1%,我们可以利用这一替代“rem+根节点 font-size”的等比缩放实现。...不做大的代码调整的话,等比缩放类的移动端网页, PC 上的合理展现方式应该是页面总宽度锁定在某个值,然后水平方向居中。(如下图) ?...滚动到视图中之前,口外部的内容屏幕上不可见。 ●当前可见的口部分称为可视口。这可以小于布局口,例如当用户进行缩放缩放时。该布局口保持不变,但视觉口变小。

3.2K20

vw, vh视窗宽高单位的使用

然而…… //zxx: 先卖个关子,一唠叨来~~ vw, vh这个可用来实现动态布局的单位到底潜力如何?...我不想直接吐露;请跟随我的学习印记以及心理历程一起去寻找答案吧~~ 二、需要提前知道的兼容性 vw, vh, vmin(vm)这几个区相关单位,2012年9月23号这天的兼容性为:Chrome 20...下图为IE9浏览器下默认打开的效果: 显然,这里的“区”不可能是浏览器外部的宽度,计算值不匹配。 ?...OK,看上面demo标题可以发现,本demo最重要的知识其实并不在于vw, vh这两个单位的介绍;而是展示了如果使用纯CSS实现弹框的水平与垂直居中效果(IE6也是可以支持的,不过写法需要变变~以后有机会详细介绍...下图为demo雏形截图,其中,左上角第一个已经成型的垂直布局显然要调整成水平方向型的,具体如何操作,请等我再好好想想,您也可以一同思考!

2.5K10

简单的聊一聊如何用CSS制作一个专业的头部页眉(Headers)

Space-Between一个三列的页眉中无法居中 首先,让我们谈谈三列页眉,因为这是我最常见到实现错误的一种情况。...我们的中间元素左侧和右侧元素之间居中对齐,但在页面的上下文中,中间元素并没有真正居中。 这是创建页眉时的第一个挑战:正确设置基本布局。您确定要实现的布局以及如何实现之前,不要试图添加更多内容。...我们继续之前,我ProductHunt上花了几个小时寻找和评估三列页眉。...这只留下了这条规则:flex: 1 1 0; 这是我们在这里的主要关注。我将这条规则应用于第一个和最后一个元素。它允许它们增长和收缩,并将它们的基准大小设置为0像素。...我们不关心口有多大,但我们知道:如果我们的容器宽度小于400像素,它会变得非常难看。这是我真正期待被广泛支持的功能之一。

31710

CSS Viewport 单位,很多人还不知道使用它来快速布局!

本文中,我们将学习 CSS Viewport units(口单位)以及如何使用它们,并用列举一些常见问题及其解决方案和用例,让我们开始吧。...为了解决这个问题,我们需要给内容(content)一个高度,它等于口高度- (header + footer)。动态地做到这一是很困难的,但是使用CSS的口,这是很容易的。...left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; } 让我们把它分解一下,这样我们就能一地理解所有这些属性是如何工作的...2.添加 margin-left: -50vw 为了使图像居中,我们需要给它一个负的边距,其宽度为口宽度的一半。 ?...如何将固定值转换为口对象?下面是如何计算它的等效的vw。 vw = (Pixel Value / Viewport width) * 100 口宽度用于估计像素值与所需vw单位之间的比率。

3.2K30

提高效率 |ArcGIS Pro 中所有快捷键一网打尽

几何属性表 用于几何属性表的键盘快捷键 键盘快捷键 操作 注释 下箭头键 前进到下一折。 前进到下一折并使其图中闪烁。 上箭头键 返回到上一折。 返回到上一折并使其图中闪烁。...Shift+下箭头 添加下一折。 将下一折添加到选择中并使其图中闪烁。在按住 Shift 键的同时切换方向键将取消选择行。 Shift+上箭头 添加上一折。...所选穹 用于所选穹的键盘快捷键 键盘快捷键 操作 Ctrl + 上箭头 将穹向远离照相机的方向移动。 Ctrl + 下箭头 将穹向照相机的方向移动。...左键拖动 - 平移 单击左键 - 弹出 滚动滚轮 - 缩放 单击并拖动滚轮 - 倾斜和旋转( 3D 中) 右键拖动 - 持续缩放 使用其他工具进行居中并放大或居中操作时,请分别按下 C+Shift...Shift + 单击 使指针位置居中并放大。 Ctrl + 单击 以指针位置作为视图中心。 2D 环境下,这将使视图居中 3D 环境下,照相机会转向中心并显示该位置。

70020

Metal 框架之渲染管线渲染图元

本示例将介绍如何配置渲染管道,作为渲染通道的一部分,图中绘制一个简单的 2D 彩色三角形。该示例为每个顶点提供位置和颜色,渲染管道使用该数据,指定的顶点颜色之间插入颜色值来渲染三角形。...编写顶点函数 编写的顶点函数必须生成输出结构的两个字段,使用 vertexID 参数索引顶点数组并读取顶点的输入数据,还需要获取口尺寸。...光栅化阶段获取输出位置,并将 x、y 和 z 坐标除以 w 以生成归一化设备坐标中的 3D 。归一化设备坐标与口大小无关。 归一化设备坐标使用左手坐标系来映射口中的位置。...该示例将两个参数的数据复制到命令缓冲区中,顶点数据是从定义的数组复制而来的,口数据是从设置口的同一变量中复制的,片元函数仅使用从光栅化器接收的数据,因此没有传递参数。...总结 本文介绍了如何配置渲染管道,如何编写顶点和片元函数、如何创建渲染管道状态对象,以及最后对绘图命令进行编码,最终图中绘制一个简单的 2D 彩色三角形。 本文示例代码下载

2K00

进入移动Web世界

webkit-flex; } .son1{ flex: 1; } .son2{ flex: 3; } .son3{ width: 100px; } flex水平垂直居中...height: 口高 device-width: 设备宽 device-height: 设备高 orientation: 检查设备横屏竖屏处向(landscape横,portrait竖) 设计 百分比布局...那么为了统一规范,后来Android系统中也加入了此判定。这就是著名的移动端300ms延迟问题。那么如何解决这个问题呢?tap事件处理。什么是tap事件?...事件属性 touches:跟踪触摸操作的touch对象数组 targetTouches:特定事件目标的touch对象数组 changeTouches:上次触摸改变的touch对象数组 c....每个touch对象包含属性 clientX:触摸目标口中的横坐标 clientY:触摸目标口中的纵坐标 identifier:标识触摸的唯一id pageX:触摸目标页面中的横坐标(含滚动)

1K20

vivo悟空活动中台-基于行为预设的动态布局方案

微信公众号 链接: https://mp.weixin.qq.com/s/CwLAV2j7Uxam01m1p7cXxg 作者:悟空中台研发团队 【悟空活动中台】系列往期精彩文章: 《揭秘 vivo 如何打造千万级...2.2.2、吸附性 对于一个元素,可以预设其锚吸附于口的顶部/底部,左边/右边,具体规则如下: 元素水平方向或垂直方向上,不能同时吸附对应的两条边;比如不能令一个元素同时吸附口顶部和口底部;但是可以另其同时吸附口顶部和口左边...2.2、缩放比 scale 使用 scale 描述元素实际口与标准口下的缩放比,设元素基准口下的宽高为 width 和 height ,则元素实际口下的宽高分别为 baseW * scale...3.2、吸附性 不同口内,页面元素的 锚 相对于口的某一个边的位置是定值,称该元素 吸附 于该条边,吸附的边的不同,可以分为 吸顶 、 吸底 、 靠左 和 靠右; 对于某个元素,若其水平或竖直方向并...不吸附 于某一条边,而是相对于顶部到底部或左边到右边的距离是固定比例,则称其为 按比例居中

2K10
领券