居中 div 上的溢出不会隐藏
Overflow on centered div won't hide
是的,父容器的位置是相对的。
我正在尝试创建一种涟漪效果,方法是让几个圆圈从一个点向各个方向扩展,直到它们扩展到视口之外。
所以我得到了一些圆形且绝对定位的 div。它们居中,如下所示。我有一个添加 grow
class 的点击处理程序,它增加了 div 的宽度和高度以展开它们。当圆圈扩展到视口之外时,y-overflow 隐藏得很好但不是 x-overflow。不知道是什么东西。
可能值得注意的是,当圆到达视口的左边缘时,它只会继续向所有其他方向扩展; window 的左边缘似乎是无法跨越的边界。
<body>
<div class="circle"></div>
</body>
body {
position: relative;
}
.circle {
position: absolute;
width: 10px;
height: 10px;
border: 1px solid #000;
border-radius: 1000px;
margin: auto;
left: 0;
right: 0;
top: 0;
bottom: 0;
transition: all 1s ease-in-out;
overflow: hidden;
}
.grow {
border: 1px solid #000;
width: 2000px;
height: 2000px;
}
$(".circle").click(function() {
$(this).addClass("grow");
});
当您设置 'top'、'right'、'bottom' 和 'left' 都为零。您需要将元素设置为相对于其自身大小居中,并在其父元素上设置 overflow: hidden
。一种方法是将 left:
设置为 50%
,然后将 margin-left:
设置为元素大小的一半。像这样:
body {
overflow: hidden;
}
.circle {
position: absolute;
width: 10px;
height: 10px;
border: 1px solid #000;
border-radius: 1000px;
margin: 0 auto;
left: 50%;
margin-left: -5px;
transition: all 1s ease-in-out;
}
.grow {
border: 1px solid #000;
width: 2000px;
height: 2000px;
margin-left: -1000px;
}
我认为这符合您所说的。参见 this CodePen。
是的,父容器的位置是相对的。
我正在尝试创建一种涟漪效果,方法是让几个圆圈从一个点向各个方向扩展,直到它们扩展到视口之外。
所以我得到了一些圆形且绝对定位的 div。它们居中,如下所示。我有一个添加 grow
class 的点击处理程序,它增加了 div 的宽度和高度以展开它们。当圆圈扩展到视口之外时,y-overflow 隐藏得很好但不是 x-overflow。不知道是什么东西。
可能值得注意的是,当圆到达视口的左边缘时,它只会继续向所有其他方向扩展; window 的左边缘似乎是无法跨越的边界。
<body>
<div class="circle"></div>
</body>
body {
position: relative;
}
.circle {
position: absolute;
width: 10px;
height: 10px;
border: 1px solid #000;
border-radius: 1000px;
margin: auto;
left: 0;
right: 0;
top: 0;
bottom: 0;
transition: all 1s ease-in-out;
overflow: hidden;
}
.grow {
border: 1px solid #000;
width: 2000px;
height: 2000px;
}
$(".circle").click(function() {
$(this).addClass("grow");
});
当您设置 'top'、'right'、'bottom' 和 'left' 都为零。您需要将元素设置为相对于其自身大小居中,并在其父元素上设置 overflow: hidden
。一种方法是将 left:
设置为 50%
,然后将 margin-left:
设置为元素大小的一半。像这样:
body {
overflow: hidden;
}
.circle {
position: absolute;
width: 10px;
height: 10px;
border: 1px solid #000;
border-radius: 1000px;
margin: 0 auto;
left: 50%;
margin-left: -5px;
transition: all 1s ease-in-out;
}
.grow {
border: 1px solid #000;
width: 2000px;
height: 2000px;
margin-left: -1000px;
}
我认为这符合您所说的。参见 this CodePen。