我有一个容器div里面有一个表单,默认情况下submit按钮是隐藏的。单击WelcomeSettingSicon
按钮时,我将在submit按钮中淡出,父div将自我扩展。这个扩展就像show/hide一样的snap。我想要的是添加一个过渡,这样父div就在submit按钮的淡入开始之前,通过submit按钮的空间过渡来扩展自己。
我使用的方法是从这个答案。但是,当我将它应用到代码中时,父div在扩展时没有得到过渡。此外,在submit按钮首次淡出后,div会迅速调整到它的新位置,当我再次关闭和打开时,按钮的高度会受到open
类的影响,fadeIn会松动它的效果。
此外,当我移除类'open'时,.bottom-content
的父母‘不会关闭。
HTML:
<div class="col-lg-6" style="background: lightblue">
<div class="content content-narrow">
<div class="block">
<div class="block-header">
<button type="button"><i id="welcomeSettingsIcon"></i></button>
</div>
<div class="block-content block-content-narrow" id="welcomePanel">
<form id="welcomeForm">
<section class="top-content">
// form elements <br />
// form elements <br />
// form elements <br />
// form elements
</section>
<section class="bottom-content">
<button id="welcomeSubmitBtn" type="submit">Btn</button>
</section>
</form>
</div>
</div>
CSS:
.bottom-content {
transform: scaleY(0);
transition: transform 250ms ease-in;
transform-origin: top;
}
.bottom-content.open {
transform: scaleY(1);
}
.bottom-content.open #welcomeSubmitBtn {
opacity: 1;
}
#welcomeSubmitBtn {
margin-top: 20px;
opacity: 0;
transition: opacity 0.5s;
transition-delay: 250ms;
}
jQuery:
jQuery(document).ready(function() {
var welcomeForm = false;
jQuery('#welcomeSettingsIcon').click(function() {
if (welcomeForm) {
jQuery('#welcomeSubmitBtn').css('opacity', 0);
jQuery('#welcomeSubmitBtn').hide();
jQuery('.bottom-content').removeClass('open');
welcomeForm = false;
} else {
jQuery('#welcomeSubmitBtn').show();
jQuery('#welcomeSubmitBtn').css('opacity', 1);
jQuery('.bottom-content').addClass('open');
welcomeForm = true;
}
}
})
我不是100%清楚你在找什么,所以让我知道如果这是接近的。我认为不需要open
类,除非您真的希望在CSS中完成所有操作:
null
jQuery(document).ready(function() {
var welcomeForm = false;
jQuery('#welcomeSettingsIcon').click(function() {
if (welcomeForm) {
jQuery('#welcomeSubmitBtn').hide();
jQuery('.bottom-content').hide();
welcomeForm = false;
//jQuery('#welcomeSubmitBtn').css('opacity', 0);
//jQuery('#welcomeSubmitBtn').hide();
//jQuery('.bottom-content').removeClass('open');
} else {
jQuery('.bottom-content').slideDown(2000, function() {
jQuery('#welcomeSubmitBtn').fadeIn();
welcomeForm = true;
//jQuery('#welcomeSubmitBtn').show();
//jQuery('#welcomeSubmitBtn').css('opacity', 1);
//jQuery('.bottom-content').addClass('open');
})
}
});
});
/* .bottom-content {
transform: scaleY(0);
transition: transform 250ms ease-in;
transform-origin: top;
}
.bottom-content.open {
transform: scaleY(1);
}
.bottom-content.open #welcomeSubmitBtn {
opacity: 1;
}
#welcomeSubmitBtn {
margin-top: 20px;
opacity: 0;
transition: opacity 0.5s;
transition-delay: 250ms;
}
*/
.bottom-content {
display: none;
height: 60px;
}
#welcomeSubmitBtn {
display: none;
margin-top: 20px;
}
html prettyprint-override"><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class="col-lg-6" style="background: lightblue">
<div class="content content-narrow">
<div class="block">
<div class="block-header">
<button type="button" id="welcomeSettingsIcon">Click Me
</button>
</div>
<div class="block-content block-content-narrow" id="welcomePanel">
<form id="welcomeForm">
<section class="top-content">
// form elements
<br />// form elements
<br />// form elements
<br />// form elements
</section>
<section class="bottom-content">
<button id="welcomeSubmitBtn" type="submit">Btn</button>
</section>
</form>
</div>
</div>
</div>
</div>
问题内容: 在隐藏其父级Div的同时如何显示子Div?能做到吗? 我的代码如下: 问题答案: 我认为这是不可能的。 您可以使用javascript将元素拉出,或复制元素然后显示。 在jQuery中,您可以复制一个元素 然后附加到任何适当的可见元素。
如何在行flex父级的开头显示两个div容器,在末尾显示第三个div容器?在下面的示例中,child-3应该位于右侧。 下面是一个包含所有孩子的快速示例,位于父项jsfiddle的开头
我有一个容器div设置了宽度和高度,溢出设置为自动。在内部,有一个无序列表,其中包含导致div滚动的内容。 问题是列表本身没有扩展到容器div之外。所以当我尝试在列表的右侧添加填充时,它并不能正常工作: CSS 这里有一把小提琴说明了问题。
问题内容: 我目前正在设计CSS“巨型下拉菜单”-基本上是一个常规的仅CSS下拉菜单,但其中包含不同类型的内容。 目前, 似乎CSS 3过渡不适用于’display’属性 ,即,您不能进行从到(或任何组合)的任何过渡。 当有人将鼠标悬停在顶层菜单项之一上时,是否可以通过上述示例使第二层菜单“淡入”? 我知道您可以在属性上使用过渡,但我想不出一种有效使用过渡的方法。 我也尝试过使用高度,但是那不幸地
问题内容: 这就是我的jsFiddle链接 为什么没有过渡?如果我设置 然后,“ subnav”将永远不会出现(当然),但是为什么不触发不透明度转换呢?如何使过渡正常工作? 问题答案: 如您所知,仅在CSS中将该属性设置为动画时,它会覆盖和过渡。 解决方案…只是删除了属性。
问题内容: 当显示其父元素时,是否有任何机制可显示子元素:无? 这种情况是隐藏选项卡上的验证错误。我想显示错误消息,即使该字段是隐藏的。 标记: CSS: 我猜这是不可能的,因为孩子没有上下文,但以防万一? 问题答案: 不,这是不可能的。隐藏该元素,因此不会显示任何子元素。 编辑: 这可能是沿着你想要的线,如果你能够从使用切换到。 使用此方法,您可以隐藏父元素的内容,但显示所需的特定内容。唯一需要