Javascript 忽略环绕绝对定位div的所有相对定位父div?
我知道使用css是不可能的,但我试图找到一些jQuery解决方案,到目前为止,在堆栈上没有找到答案 无论如何,HTML顺序如下所示,并且需要保持如下:Javascript 忽略环绕绝对定位div的所有相对定位父div?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我知道使用css是不可能的,但我试图找到一些jQuery解决方案,到目前为止,在堆栈上没有找到答案 无论如何,HTML顺序如下所示,并且需要保持如下: <div class="wrapper"> <div style="position:relative;"> <div style="position:relative;"> <div class="dont-want-parents" style="position:absolu
<div class="wrapper">
<div style="position:relative;">
<div style="position:relative;">
<div class="dont-want-parents" style="position:absolute;">
</div>
</div>
</div>
</div>
这里有一个工作模式您可以将它们全部设置回
静态
,这样带有绝对
的一个会忽略它们。此外,还需要top
和left
,因为position:absolute
仅从布局中删除元素,而不从其原始位置删除元素
$('.wrapper>div,.wrapper>div>div').css('position','static')代码>
div{
填充:50px;
背景:rgba(255,0,0,0.5);
}
.包装纸{
位置:相对位置;
背景:绿色;
}
1.不要父母{
背景:蓝色;
排名:0;
}
您可以将它们全部设置回静态
,以使带有绝对
的忽略它们。此外,还需要top
和left
,因为position:absolute
仅从布局中删除元素,而不从其原始位置删除元素
$('.wrapper>div,.wrapper>div>div').css('position','static')代码>
div{
填充:50px;
背景:rgba(255,0,0,0.5);
}
.包装纸{
位置:相对位置;
背景:绿色;
}
1.不要父母{
背景:蓝色;
排名:0;
}
那么你的标记的结构应该不同。@RayonDabre好吧,我非常同意,但我不能改变它:)或者更好的说法是我想改变它,但我必须处理它,就像不幸的是,你需要取消父relpos elms所做的抵消;如果一个是150px,那么你的需要是-150px…那么你的标记结构应该不同。@RayonDabre嗯,我非常同意,但这不取决于我去改变它:)或者说我想改变它更好,但我必须像不幸的是那样去处理它你需要取消父母关系所做的抵消;如果一个是150px,那么你的需要-150px…更准确地说,这是布局的简化版本,但是所有的相对div都需要保持相对,因为还有很多其他元素依赖于此。抱歉,这不是答案,CSS也可以做同样的事,正如我所说的,relative必须始终保持相对(使用“append”编辑):),我已经尝试了完全相同的方法,但它破坏了布局,不确定是否可以使用jQuery偏移量执行某些操作?更准确地说,这是布局的简化版本,但是所有相对div都需要保持相对,因为还有很多其他元素依赖于此。抱歉,这不是答案,同样的事情也可以通过CSS来完成,正如我所说的相对必须始终保持相对使用“append”:),我尝试了完全相同的方法,但它破坏了布局,不确定是否可以使用jQuery偏移量执行某些操作?
$(window).on("load resize",function(e){
var parentoffset = $('.dont-want-parents').parent();
var elwidth = $('.dont-want-parents').width();
var offset = parentoffset.offset();
$('.dont-want-parents').css('right', -offset.left + elwidth);
});