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

React技巧之使用ref获取元素宽度

/bobbyhadz.com/blog/react-get-element-width-ref[1] 作者:Borislav Hadzhiev[2] 正文从这开始~ 总览 在React中,使用ref获取元素的宽度...在useLayoutEffect钩子中,更新宽度的state变量。 使用offsetWidth属性获取元素宽度。...offsetWidth属性以像素为单位返回元素的宽度,包括任何边框、内填充和垂直滚动条(如果存在的话)。 offsetHeight属性返回元素的高度,单位是像素,包括垂直内填充和边框。...或者,你可以使用clientWidth属性,它返回元素的宽度,单位是像素,包括内填充,但不包括边框、外边距和垂直滚动条(如果存在的话)。...> { setWidth(ref.current.clientWidth); setHeight(ref.current.clientHeight); }, []); 总结 我们通过ref来获取元素的宽度和高度

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

    js获取元素的几种形式

    通过id获取元素 document.getElementById('div');//获取id为div的元素 通过class获取 document.getElementsByClassName('top'...);//获取页面中所有的class为top的元素集合 通过标签名获取 document.getElementsByTagName('p');//获取页面中所有的标签为p的元素集合 通过name获取 document.getElementsByName...('user');//获取页面中所有的name为user的元素集合 注意:通过class,name标签名抓取的元素是一个集合,即使该类只有一个符合要求的元素目标,也返回是一个集合,因此可以存储的变量,通过变量名...[0]获得第一个符合要求的标签目标....简单可以将返回的当做一个存储符合的数组,通过下标进行找到指定的位置. 当然也可以使用数组的方法返回,集合的目标数. alert(tops.length)可以提示出class为top的目标数

    28.1K30

    js获取元素样式之getComputedStyle方法

    习惯了jquery的同学应该都知道获取元素样式的方式可以直接写成(obj).css(style);更方便的获取高度宽度等一些样式可以直接使用(obj).height()和 一、 getComputedStyle...是什么 getComputedStyle是一个可以获取当前元素所有最终使用的CSS属性值。...为什么要用这个属性呢,是因为通过document.getElementById(element).style.xxx可以获取元素的样式信息但是对于通过class属性引用的外部样式表就获取不到了。...但是getComputedStyle属性是只读的属性,只能读属性,不能设置,但是他可以获取到元素的最终样式信息。...例如,我们要获取一个元素的高度,可以类似下面的代码: alert((element.currentStyle?

    25K30

    js获取屏幕以及元素宽高的方法

    window.screen.width 屏幕可用工作区高度:window.screen.availHeight 屏幕可用工作区宽度:window.screen.availWidth 二.body相关...网页被卷去的高:document.body.scrollTop 网页被卷去的左:document.body.scrollLeft 三.滚动相关 scrollHeight: 获取对象的滚动高度。...scrollWidth: 获取对象的滚动宽度 document.documentElement.scrollTop 垂直方向滚动的值 四.位置精确定位 scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离...scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置 offsetTop...:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置 五.坐标轴 event.clientX 相对文档的水平座标 event.clientY 相对文档的垂直座标 event.offsetX

    9.2K20

    js、jQuery 获取文档、窗口、元素的各种值

    获取竖直滚动条到顶部的垂直高度 (即网页被卷上去的高度)(ie浏览器): document.documentElement.scrollTop; 获取水平滚动条到左边的水平宽度 (即网页被卷左去的宽度...; 获取元素的宽度:clientWidth;(width+padding) 获取元素的高度:clientHeight;(height+padding) 获取元素的宽度:offsetWidth;(width...(即网页被卷左去的宽度):$(document).scrollLeft(); 获取或设置元素的宽度:$(obj).width();(width) 注意只是元素的宽度,不包括padding 获取或设置元素的高度...:$(obj).height();(height) 注意只是元素的高度,不包括padding 获取或设置元素的宽度:$(obj).innerWidth(); (width + padding) 获取或设置元素的高度...获取或设置元素的高度:$(obj).outerHeight(); (height + padding + border) 获取元素的宽度:$(obj).outerWidth(true); (width

    19.2K32

    JS获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度

    scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度...offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度 offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置...,若要得到窗口的尺寸,需要注意根元素的尺寸,而不是元素。...-- var winWidth = 0; var winHeight = 0; function findDimensions() //函数:获取尺寸 { //获取窗口宽度...(4)再通过深入Document内部对body进行检测,获取窗口大小,并存储在前述两个变量中。 (5)在函数的最后,通过按名称访问表单元素,结果输出至两个文本框。

    11.7K30

    JS offsetParent属性:获取最近的上级定位元素

    在js中,offsetParent 属性表示最近的上级定位元素。...要获取相对父级元素的位置,可以先判断 offsetParent 属性是否指向父元素,如果是,则直接使用 offsetLeft 和 offsetTop 属性获取元素相对于父元素的距离;否则分别获得当前元素和父元素距离窗口的坐标...//获取指定元素距离父元素左上角的偏移坐标//参数:e表示获取位置的元素//返回值:返回对象直接量,其中属性x表示x轴偏移距离,属性y表示y轴偏移距离function getP (e) { if...offsetLeft属性值 var y = e.offsetTop; //读取offsetTop属性值 } else { //否则调用getW()扩展函数获取父元素的偏移位置,并返回它们的差值..."x" : x, "y" : y },}下面调用该扩展函数获取指定元素相对父元素的偏移坐标。

    10K40

    CSS元素高度始终跟随宽度

    使用 aspect-ratio 属性现代浏览器支持 aspect-ratio 属性,它允许你为元素设置宽高比(例如 1:1),这样元素的高度就会随着宽度的变化而自动调整。....你可以根据需要调整比例,例如 aspect-ratio: 16/9 会使元素的高度是宽度的 9/16。优点:简洁明了,易于使用。不需要额外的技巧或嵌套元素。...百分比值是相对于父元素的宽度的,因此这个方法能保证元素的高度跟随宽度变化。..../}padding-bottom: 100% 会使元素的高度等于其宽度,形成一个正方形。...原理:padding-bottom 使用的是相对于元素宽度的百分比,因此它的高度会随着宽度的变化而变化。优点:兼容性较好,适用于旧版浏览器。3.

    1.9K00

    JS和JQuery获取当前元素的兄弟及父级等元素的方法

    jQuery获取: jQuery.parent(expr),找父亲节点,可以传入 expr 进行过滤,比如 $("span").parent() 或者 $("span").parent(".class"...) jQuery.parents(expr),类似于 jQuery.parents(expr) ,但是是查找所有祖先元素,不限于父元素 jQuery.children(expr),返回所有子节点,这个方法只会返回直接的孩子节点...,而 jQuery.find(),的返回结果,不会有初始集合中的内容,比如 $("p").find("span") ,是从 元素开始找 ,等同于 $("p span") JS获取:...;   //获得s的最后一个子节点 JS获取节点父级,子级元素:JS的方法会比JQUERY麻烦很多,主要则是因为FF、谷歌浏览器会把你的换行也当作DOM元素:空的text元素,目前IE也是这样       原生的JS获取ID为test的元素下的子元素。

    15K10
    领券