[英]Ease Transition of Toggling Div with jQuery
I'm trying to establish a smooth transition when toggling a div.我试图在切换 div 时建立平滑过渡。 Right now the toggle is immediate.
现在切换是即时的。
$(document).ready(function(){ $(".product-suggestion-form-container").click(function(){ $(".form-div-top").toggle(); }) });
.description-container { font-family: "Proxima Nova Regular"; }.form-div-outer { margin: 10px 0; }.product-suggestion-form-container { border: 1px solid #c6c6c6; border-bottom: none; padding: 5px 10px; display: flex; justify-content: space-between; background-color: #f8f7f7; cursor: pointer; } /*initial display*/.form-div-top { display: none; background-color: #f8f7f7; border: 1px solid #c6c6c6; }
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div class="description-container"> Fill out the product suggestion and contact us forms below: </div> <div class="form-div-outer"> <div class="product-suggestion-form-container"> <span class="form-title">Product Suggestion Form</span> <span class="dropdown-arrow"><i class="fas fa-caret-down"></i> </span> </div> <div class="form-div-top"> <form class="form-div-inner-top"> <span class="input-group input-group-name"> <input type="text" placeholder="Name" class="form-input" required> </input> </span> <span class="input-group input-group-email-address"> <input type="text" placeholder="Email Address" class="form-input" required></input> </span> <span class="input-group description-of-product-desired"> <input type="textarea" placeholder="Description of product desired" class="form-input" required></input> </span> </form> </div> </div>
I've tried to add .animate()
and .fadeIn()
but neither are working.我尝试添加
.animate()
和.fadeIn()
但两者都不起作用。 Is my syntax wrong?我的语法错了吗? Is the way I'm calling them wrong?
我称呼他们的方式是错误的吗? Transition is still immediate.
过渡仍然是即时的。
$(document).ready(function(){
$(".product-suggestion-form-container").click(function(){
$(".form-div-top").toggle()
$(".form-div-top").animate({
duration: 200
});
$(".form-div-top").fadeIn( "slow", function() {
// Animation complete
});
})
});
jQuery's toggle
method accepts a duration in milliseconds as the first argument. jQuery 的
toggle
方法接受以毫秒为单位的持续时间作为第一个参数。
$(".form-div-top").toggle(300);
$(document).ready(function(){ $(".product-suggestion-form-container").click(function(){ $(".form-div-top").toggle(300); }) });
.description-container { font-family: "Proxima Nova Regular"; }.form-div-outer { margin: 10px 0; }.product-suggestion-form-container { border: 1px solid #c6c6c6; border-bottom: none; padding: 5px 10px; display: flex; justify-content: space-between; background-color: #f8f7f7; cursor: pointer; } /*initial display*/.form-div-top { display: none; background-color: #f8f7f7; border: 1px solid #c6c6c6; }
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div class="description-container"> Fill out the product suggestion and contact us forms below: </div> <div class="form-div-outer"> <div class="product-suggestion-form-container"> <span class="form-title">Product Suggestion Form</span> <span class="dropdown-arrow"><i class="fas fa-caret-down"></i> </span> </div> <div class="form-div-top"> <form class="form-div-inner-top"> <span class="input-group input-group-name"> <input type="text" placeholder="Name" class="form-input" required> </input> </span> <span class="input-group input-group-email-address"> <input type="text" placeholder="Email Address" class="form-input" required></input> </span> <span class="input-group description-of-product-desired"> <input type="textarea" placeholder="Description of product desired" class="form-input" required></input> </span> </form> </div> </div>
On my own I can suggest a solution using the toggleClass()
method:我自己可以建议使用
toggleClass()
方法的解决方案:
...
$(".form-div-top").toggleClass("form-div-top_show");
...
It is necessary to create an additional class for the block activity:需要为块活动创建一个额外的 class:
.form-div-top_show {
opacity: 1;
}
And also, you need to add a transition
rule for the smooth appearance of the block, and replace display: none
with opacity: 0
:此外,您需要为块的平滑外观添加
transition
规则,并将display: none
替换为opacity: 0
:
.form-div-top {
opacity: 0;
background-color: #f8f7f7;
border: 1px solid #c6c6c6;
transition: .5s;
}
$(document).ready(function(){ $(".product-suggestion-form-container").click(function(){ $(".form-div-top").toggleClass("form-div-top_show"); }) });
.description-container { font-family: "Proxima Nova Regular"; }.form-div-outer { margin: 10px 0; }.product-suggestion-form-container { border: 1px solid #c6c6c6; border-bottom: none; padding: 5px 10px; display: flex; justify-content: space-between; background-color: #f8f7f7; cursor: pointer; } /*initial display*/.form-div-top { opacity: 0; background-color: #f8f7f7; border: 1px solid #c6c6c6; transition: .5s; }.form-div-top_show { opacity: 1; }
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div class="description-container"> Fill out the product suggestion and contact us forms below: </div> <div class="form-div-outer"> <div class="product-suggestion-form-container"> <span class="form-title">Product Suggestion Form</span> <span class="dropdown-arrow"><i class="fas fa-caret-down"></i> </span> </div> <div class="form-div-top"> <form class="form-div-inner-top"> <span class="input-group input-group-name"> <input type="text" placeholder="Name" class="form-input" required> </input> </span> <span class="input-group input-group-email-address"> <input type="text" placeholder="Email Address" class="form-input" required></input> </span> <span class="input-group description-of-product-desired"> <input type="textarea" placeholder="Description of product desired" class="form-input" required></input> </span> </form> </div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.