Javascript getComputedStyle(elem),用于元素未悬停的情况,即使它当前处于悬停状态

Javascript getComputedStyle(elem),用于元素未悬停的情况,即使它当前处于悬停状态,javascript,css,Javascript,Css,我有几个元素,当它们悬停时,高度会略微增加。单击其中一个元素时,我需要获得该元素未悬停时的高度 window.getComputedStyle(elem,null).height提供悬停高度。与窗口相同。getComputedStyle(elem),:未(:悬停)。高度 很遗憾,正常高度和悬停高度之间的差不是常数,所以我不能直接减去那个常数 编辑:添加了一个最小的工作示例: 函数onClick(目标){ const hoveredHeight=window.getComputedStyle(目标

我有几个元素,当它们悬停时,高度会略微增加。单击其中一个元素时,我需要获得该元素未悬停时的高度

window.getComputedStyle(elem,null).height
提供悬停高度。与
窗口相同。getComputedStyle(elem),:未(:悬停)。高度

很遗憾,正常高度和悬停高度之间的差不是常数,所以我不能直接减去那个常数

编辑:添加了一个最小的工作示例:
函数onClick(目标){
const hoveredHeight=window.getComputedStyle(目标“:hovered”).height;
常量normalHeight=window.getComputedStyle(目标,null).height;
警报(“悬停高度为“+悬停高度+”,正常高度为“+正常高度”);
}
p{
位置:绝对位置;
边际:0px;
最高:50%;
转化:translateY(-50%);
}
#盘旋我{
位置:相对位置;
高度:50px;
宽度:100px;
背景色:#999;
垂直对齐:中间对齐;
过渡:高度0.1s线性;
}
#悬停我:悬停{
高度:100px;
}

单击我

首先,:悬停窗口无效。getComputedStyle()函数因为:悬停不是一个而是一个

因此,您的语句
window.getComputedStyle(目标“:悬停”).height
window.getComputedStyle(目标).height
或传递到第二个参数位置的任何值具有相同的结果

如果要在悬停之前存储元素的高度,可以使用多种方法。我在我的代码片段中演示了一种使用javascript和onmouseenter和onmouseleave事件的方法

var原始高度;
函数onClick(目标){
const currentHeight=window.getComputedStyle(目标).height;
警报(“悬停高度为“+currentHeight+”,正常高度为“+originalHeight”);
}
函数onMouseCenter(目标){
originalHeight=window.getComputedStyle(目标).height;
//再创新高
target.style.height='100px';
}
函数onMouseLeave(目标){
//重置原始高度
target.style.height=原始高度;
}
p{
位置:绝对位置;
边际:0px;
最高:50%;
转化:translateY(-50%);
}
#盘旋我{
位置:相对位置;
高度:50px;
宽度:100px;
背景色:#999;
垂直对齐:中间对齐;
过渡:高度0.1s线性;
}

单击我

获取非悬停高度的目的是什么?单击其中一个元素时会出现一种工具提示。我需要知道工具提示的确切位置。一旦元素不再悬停,工具提示就会出现在错误的位置。您能否使用stackkoverflow的代码片段功能发布您的问题。我添加了一个代码片段@chickensups。为什么不将工具提示设置为绝对并应用
top:0;左:0因此,即使高度发生变化,它也始终位于顶部