Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.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 如何从具有绝对位置的元素获取marginLeft?_Javascript_Html_Css - Fatal编程技术网

Javascript 如何从具有绝对位置的元素获取marginLeft?

Javascript 如何从具有绝对位置的元素获取marginLeft?,javascript,html,css,Javascript,Html,Css,当你用鼠标悬停在某个东西上时,我试图在它上面添加一个信息框,但是我需要获取元素的左边距,因为它在移动,但是它在CSS中没有左边距属性,并且它的位置是相对的,所以我不需要添加左边距属性。我尝试过执行element1.style.marginLeft=element2.style.marginLeft,但它总是返回0,下面是一个仅使用CSS显示popover信息框的示例。它使用transform来移动框,而不是margin。原因是使用transform制作动画比使用margin制作动画效果更好,并且

当你用鼠标悬停在某个东西上时,我试图在它上面添加一个信息框,但是我需要获取元素的左边距,因为它在移动,但是它在CSS中没有左边距属性,并且它的位置是相对的,所以我不需要添加左边距属性。我尝试过执行
element1.style.marginLeft=element2.style.marginLeft
,但它总是返回0

,下面是一个仅使用
CSS
显示popover信息框的示例。它使用
transform
来移动框,而不是
margin
。原因是使用
transform
制作动画比使用
margin
制作动画效果更好,并且动画在所有设备上都会更平滑。下面的示例还使用了一些
WAI-ARIA
属性,使屏幕阅读器用户更容易访问它

.container{
位置:相对位置;
显示:内联块;
}
[角色=对话框]{
位置:绝对位置;
不透明度:0;
最高:50%;
左:50%;
转换:转换(-50%,计算(-50%+45px));
过渡:0.3s变换,0.3s不透明度;
背景色:#333;
颜色:白色;
字体系列:无衬线;
填充:.5em;
宽度:70%;
指针事件:无;
字体大小:.9rem;
}
.myInfo:hover+[role=dialog],
.myInfo:focus+[role=dialog]{
不透明度:1;
转换:转换(-50%,计算(-50%+40px));
}
p{
保证金:0;
填料:1米2米1米1米;
背景色:#eee;
位置:相对位置;
}
PIMG{
位置:绝对位置;
最高:50%;
右:10px;
转化:translateY(-50%);
}

我有更多信息

更多信息请参见此处
我所做的只是将两个元素都设置在
元素中,而不是将它们以某种方式分开,结果它工作了

请包括一个完整的可测试的例子。刚刚发现一个错误:问题中应该说是相对的而不是绝对的。这可能是非常有趣的工作,但我不尝试动画信息框。我只是试着把信息框放在与它提供更多信息的元素相同的位置on@DatMADScripter你能给我一张你想要的图片吗?这是图像raw.githubusercontent.com/DatMADCoder/images/…我想把信息放在有信息的盒子旁边,没有设置左边的空白