Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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 检测元素是否超出其父元素的外部边界_Javascript_Jquery - Fatal编程技术网

Javascript 检测元素是否超出其父元素的外部边界

Javascript 检测元素是否超出其父元素的外部边界,javascript,jquery,Javascript,Jquery,我正在创建一个lightbox jQuery插件,在lightbox图像中有绝对定位的元素 这些元素将随机添加到红色图像的顶部。目前,这些蓝色方块将与红色图像的外部边界重叠 我怎样才能发现这种行为?蓝色有时会被隐藏,然后单击,它会在红色的外部边界上展开。您可以找到每个元素的边界框,并快速比较边,以检测它是在元素内部还是外部 var isItIn=functionparent,child{ var box1coords=parent.getBoundingClientRect; var box2

我正在创建一个lightbox jQuery插件,在lightbox图像中有绝对定位的元素

这些元素将随机添加到红色图像的顶部。目前,这些蓝色方块将与红色图像的外部边界重叠


我怎样才能发现这种行为?蓝色有时会被隐藏,然后单击,它会在红色的外部边界上展开。

您可以找到每个元素的边界框,并快速比较边,以检测它是在元素内部还是外部

var isItIn=functionparent,child{ var box1coords=parent.getBoundingClientRect; var box2coords=child.getBoundingClientRect; 如果 box2coords.topbox1coords.right|| box2coords.bottom>box1coords.bottom | | box2coords.left .position方法允许我们检索 相对于偏移父元素,特定于其边距框的元素 特别是它的填充框,不包括边距和边框

但是,这不适用于隐藏元素。何时需要检测重叠还不太清楚

如果蓝色元素不是蓝色的子元素,则可以使用

.offset方法允许我们检索 元素的边框框,该框不包括相对的边距 对文件进行修改


用if-else检测:lolDo您是否需要检测您所说的点击蓝色框将允许其溢出的所有b/c。因此,我会使用css和溢出:隐藏在红色框中,当用户单击蓝色框时,应用溢出:可见;但不确定是什么触发它返回到溢出:隐藏。蓝色元素如何定位,以及它们是否作为红色元素的子元素添加,或者作为兄弟姐妹?如果您提前获得了信息,即子元素和父元素的宽度和高度,则可能需要对子元素可以随机放置在父元素中的位置设置约束。与提前计算约束并完全避免重叠检测相比,检测位置并用另一个随机布局调整错误的随机布局将更加昂贵。