如何使用jQuery删除元素,但仍保留其存在的空间

如何使用jQuery删除元素,但仍保留其存在的空间,jquery,Jquery,有没有一种方法可以使用jQuery隐藏或显示元素,但仍然保留它在页面上占用的空间? 例如,一组链接,每个链接下面都有一个段落。当用户将鼠标悬停在链接上时,段落将消失/出现,但在删除段落时布局不会改变。您可以使用css将其隐藏: jQuery('p').css('opacity', 0); 这样,图元是不可见的,但仍会根据其尺寸填充所需的空间。通过这种方式,当您希望平滑隐藏元素时,也可以对其设置动画。您可以使用css隐藏元素: jQuery('p').css('opacity', 0); 这样

有没有一种方法可以使用jQuery隐藏或显示元素,但仍然保留它在页面上占用的空间?
例如,一组链接,每个链接下面都有一个段落。当用户将鼠标悬停在链接上时,段落将消失/出现,但在删除段落时布局不会改变。

您可以使用css将其隐藏:

jQuery('p').css('opacity', 0);

这样,图元是不可见的,但仍会根据其尺寸填充所需的空间。通过这种方式,当您希望平滑隐藏元素时,也可以对其设置动画。

您可以使用css隐藏元素:

jQuery('p').css('opacity', 0);

这样,图元是不可见的,但仍会根据其尺寸填充所需的空间。这样,当您想要平滑隐藏元素时,也可以对其设置动画。

非常简单的方法是使用visiblity CSS属性:

$('a').hover(function() {
    $(this).next().css('visibility', 'visible');
}, function() {
    $(this).next().css('visibility', 'hidden');
});

$this.next可能需要修改才能找到要显示或隐藏的正确元素。

非常简单的方法是使用visiblity CSS属性:

$('a').hover(function() {
    $(this).next().css('visibility', 'visible');
}, function() {
    $(this).next().css('visibility', 'hidden');
});
$this.next可能需要修改以找到要显示或隐藏的正确元素。

您可以使用可见性:隐藏或不透明度:0

隐藏的值隐藏了一个元素,但在该元素可能具有的位置留下了空间 曾经

您可以使用可见性:隐藏或不透明度:0

隐藏的值隐藏了一个元素,但在该元素可能具有的位置留下了空间 曾经


可以使用内置jquery方法隐藏元素:

$'ElementId'。隐藏

并使用以下方式显示:


$'ElementId'。显示

可以使用内置jquery方法隐藏元素:

$'ElementId'。隐藏

并使用以下方式显示:


$'ElementId'。显示

您只需使用CSS即可完成此操作,无需使用JavaScript

p {
    visibility:hidden;
}
a:hover + p {
    visibility:visible;
}

您只需要CSS就可以做到这一点,不需要JavaScript

p {
    visibility:hidden;
}
a:hover + p {
    visibility:visible;
}

您必须将其替换为具有相同尺寸的空格夹。您可以更改要隐藏的元素的不透明度。如果需要淡入淡出效果,您可以在答案上构建“不透明度样式”属性的动画。但在您的情况下,不要使用fadeIn和fadeOut,因为这些方法也会完全显示或隐藏元素,这与您的先决条件不符。您必须将其替换为具有相同尺寸的空格座。您可以更改要隐藏的元素的不透明度在答案上构建,如果需要淡入效果,可以设置“不透明度样式”属性的动画。但是不要在你的例子中使用fadeIn和fadeOut,因为这些方法也会完全显示或隐藏元素,这违背了你的先决条件。我们不能只用CSS来实现吗?~@j08691可能带有+,是的,尽管DOM结构可能没有这么简单。我还没喝咖啡;谢谢,我使用了它的一个变体,但增加了可见性:隐藏以使“p”在开始时不可见。我们就不能用CSS来做这个吗?~@j08691可能带有+,是的,尽管DOM结构可能没有这么简单。我还没喝咖啡;谢谢,我使用了它的一个变体,但增加了可见性:隐藏以使“p”在开始时不可见。我正要将此添加到我的答案中,但我将给你一个+1。谢谢,这是可行的,但我可以控制元素的显示速度吗?我想我必须使用jQuery来解决这个问题。好吧,你的问题中没有提到速度或任何类型的淡入效果,因此它是不存在的。但是你可以使用CSS3转换和元素的不透明度来完成它,而不使用JavaScript。我正要将此添加到我的答案中,但我会给你一个+1。谢谢,这很有效,但是我可以控制元素出现的速度吗?我想我必须使用jQuery来解决这个问题。好吧,你在问题中没有提到速度或任何类型的淡入效果,所以它是不存在的。但是你可以使用CSS3转换和元素的不透明度来完成它,而不使用JavaScript。不,这将显示设置为无,因此元素不占用空间。不,这将显示设置为无,所以这些元素不占空间。