Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可以使用getBoundingClientRect设置元素的大小吗_Javascript_Html - Fatal编程技术网

Javascript 可以使用getBoundingClientRect设置元素的大小吗

Javascript 可以使用getBoundingClientRect设置元素的大小吗,javascript,html,Javascript,Html,我有一个按钮,可以在鼠标输入事件中调整大小。我想知道是否可以根据从getBoundingClientRect().height接收到的高度来调整它的大小 这是我迄今为止尝试过的,但似乎没有任何效果 btn.onmouseover = function(){ let h = this.getBoundingClientRect().height; this.style.width = "100%"; if(h != this.getBoundingClientRect(

我有一个按钮,可以在鼠标输入事件中调整大小。我想知道是否可以根据从
getBoundingClientRect().height
接收到的高度来调整它的大小

这是我迄今为止尝试过的,但似乎没有任何效果

btn.onmouseover = function(){
    let h = this.getBoundingClientRect().height;
    this.style.width = "100%"; 

    if(h != this.getBoundingClientRect().height)
    {
        this.getBoundingClientRect().height = h;
    }

    this.style.right = "4%";
}
当鼠标移到按钮上时,按钮会调整大小,因为按钮内的文本从两行移到一行,所以我想知道是否有类似于getBoundingClientRect()的函数调用,我可以根据从
h
获得的高度来设置按钮的高度。这样,按钮内的文本从两行移动到一行时,不会在鼠标上方调整整个按钮的大小


另外,将高度从
h
设置为按钮的样式高度会产生一个奇怪的偏移,因此在这种情况下,这对我来说不是一个可行的解决方案。您正在检查刚刚从
getBoundingClientRect
获得的高度是否等于从
getBoundingClientRect
获得的高度,当然,它将始终等于。不,您不可能通过更新通过调用
getBoundingClientRect
获得的信息来更改某个对象的大小。无论如何,如果你真的想在JS中做一些与悬停相关的事情,你需要使用
mouseenter
mouseleave
,而不是
mouseover

但实际上,您应该能够完全在CSS中实现这一点

按钮{宽度:200px;高度:3em;}
按钮:悬停{宽度:400px;}

嗨,我是一个按钮,有一些很长的文本
如果你仔细想想,
get
正确地建议,你不能
设置
我意识到当我发布它时,lol,但是有没有一个类似setBoundingClientRect()的函数可以改变按钮的大小?不,你会使用其他属性(.style.??)要操作元素,我尝试将style.height设置为h,它可以工作,但这样做的方式会创建一个偏移,因此按钮高度实际上并不相同。您收到的高度是根据几个CSS属性计算的。设置高度不明确:是否只增加高度?缩放它?让边界更大?填充物?边距?是的,但当元素内有文本且宽度增加时,文本将从两行变为一行,使高度缩小,因此我正在检查高度是否缩小,因为文本已调整大小,然后将按钮调整为原始高度为什么不将高度调整为您想要的高度?因为我希望在鼠标上方调整宽度,并且我正在创建的多个元素是我不想要的要达到这个大小,只有那些因为文本从多行变为一行而被调整大小的行