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