Javascript 使绝对定位的div覆盖视口
我正在制作一个jQuery动画,它有一个绝对定位的div,该div在视口的特定位置生成(Javascript 使绝对定位的div覆盖视口,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在制作一个jQuery动画,它有一个绝对定位的div,该div在视口的特定位置生成(left:150px),该div垂直和水平增长,覆盖整个视口 但不幸的是,div溢出了视口,没有覆盖整个屏幕 $(文档).ready(函数(){ 函数generateChild(顶部、底部、左侧、右侧){ $(“#divGenerator”)。追加(` `); } generateChild(“50vh”、“0”、“80vw”、“0”); /* setInterval(函数(){ $(“.child”).a
left:150px
),该div垂直和水平增长,覆盖整个视口
但不幸的是,div溢出了视口,没有覆盖整个屏幕
$(文档).ready(函数(){
函数generateChild(顶部、底部、左侧、右侧){
$(“#divGenerator”)。追加(`
`);
}
generateChild(“50vh”、“0”、“80vw”、“0”);
/*
setInterval(函数(){
$(“.child”).animate({
“转换”:“translate3d(0,0,0)”,
“过渡”:“所有0.5秒放松”
},3000,函数(){
$(this.fadeOut().remove();
});
}, 1000);
*/
})
正文{
保证金:0;
溢出:隐藏;
}
#分频发生器{
位置:相对位置;
高度:100vh;
排名:0;
底部:0;
左:0;
右:0;
保证金:自动;
背景色:黑色;
边框:1px纯黑;
}
.孩子{
位置:绝对位置;
宽度:20px;
高度:20px;
边框:1px纯白;
}
三重波
要实现此效果,您需要几个条件:
- 使用
(而不是position:fixed
),使元素相对于视口而不是其最近的相对定位父元素进行定位absolute
- 从要开始的元素的起始位置获取首字母
、top
、left
和width
。注意:此方法是在DOM元素上定义的,而不是在jQuery包装器上定义的(因此需要height
)$(选择器).get(0).getBoundingClientRect()
- 从这些位置向以下方向设置动画:
top:0;左:0;宽度:100vw;高度:100vh
getBoundingClientRect()
,因为您可以从任意数据(从函数中)生成元素,但通常您需要它,因为它可以获取元素相对于视口当前位置的位置(包括滚动等)
$(文档).ready(函数(){
函数generateChild(顶部、底部、左侧、右侧){
$(“#divGenerator”)。追加(`
`);
}
generateChild(“50vh”、“0”、“80vw”、“0”);
setInterval(函数(){
$(“.child”).animate({
“宽度”:“100vw”,
“高度”:“100vh”,
“顶部”:0,
“左”:0
},3000,函数(){
$(this.fadeOut().remove();
});
}, 1000);
})
正文{
保证金:0;
溢出:隐藏;
}
#分频发生器{
位置:相对位置;
高度:100vh;
排名:0;
底部:0;
左:0;
右:0;
保证金:自动;
背景色:黑色;
边框:1px纯黑;
}
.孩子{
位置:固定;
宽度:20px;
高度:20px;
边框:1px纯白;
}
三重波
要实现此效果,您需要几个条件:
- 使用
(而不是position:fixed
),使元素相对于视口而不是其最近的相对定位父元素进行定位absolute
- 从要开始的元素的起始位置获取首字母
、top
、left
和width
。注意:此方法是在DOM元素上定义的,而不是在jQuery包装器上定义的(因此需要height
)$(选择器).get(0).getBoundingClientRect()
- 从这些位置向以下方向设置动画:
top:0;左:0;宽度:100vw;高度:100vh
getBoundingClientRect()
,因为您可以从任意数据(从函数中)生成元素,但通常您需要它,因为它可以获取元素相对于视口当前位置的位置(包括滚动等)
$(文档).ready(函数(){
函数generateChild(顶部、底部、左侧、右侧){
$(“#divGenerator”)。追加(`
`);
}
generateChild(“50vh”、“0”、“80vw”、“0”);
setInterval(函数(){
$(“.child”).animate({
“宽度”:“100vw”,
“高度”:“100vh”,
“顶部”:0,
“左”:0
},3000,函数(){
$(this.fadeOut().remove();
});
}, 1000);
})
正文{
保证金:0;
溢出:隐藏;
}
#分频发生器{
位置:相对位置;
高度:100vh;
排名:0;
底部:0;
左:0;
右:0;
保证金:自动;
背景色:黑色;
边框:1px纯黑;
}
.孩子{
位置:固定;
宽度:20px;
高度:20px;
边框:1px纯白;
}
三重波
它需要覆盖整个视口还是不需要左侧的150px?你能提供一个工作片段吗?左侧的150px是绝对需要的,我刚刚添加了一个工作片段,它需要覆盖整个视口还是不需要左侧的150px?你能提供一个工作片段吗?左边的150px是绝对需要的,我刚刚添加了一个工作片段