Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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 使绝对定位的div覆盖视口_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 使绝对定位的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

我正在制作一个jQuery动画,它有一个绝对定位的div,该div在视口的特定位置生成(
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
    height
    。注意:此方法是在DOM元素上定义的,而不是在jQuery包装器上定义的(因此需要
    $(选择器).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
    height
    。注意:此方法是在DOM元素上定义的,而不是在jQuery包装器上定义的(因此需要
    $(选择器).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是绝对需要的,我刚刚添加了一个工作片段