简体   繁体   English

下推内容的HTML / CSS动画

[英]HTML/CSS Animation on pushed down content

I have a Bootstrap row that is hidden by default. 我有一个Bootstrap行,默认情况下是隐藏的。 After a click on a specific button the jQuery toggle() is called to toggle the display of this row. 单击特定按钮后,将调用jQuery toggle()来切换该行的显示。

Is there a way to animate that button to move down? 有没有办法使该按钮向下移动动画? The button is positioned below the row that is toggled to show/hide. 该按钮位于切换为显示/隐藏的行的下方。

The #advancetoggle button should move down with animation, if I use CSS's transition: transform(0,100px) the button starts to move down but it jumps due to the row above that gets the display:block and it pushes the button far way down. #advancetoggle按钮应随动画一起向下移动,如果我使用CSS的transition: transform(0,100px)则按钮开始向下移动,但由于上面的行获得display:block而跳了起来,并将按钮向下推得很远。

Thanks :) 谢谢 :)

 $("#advancetoggle").click(function(event) { event.stopPropagation(); $('#advanced-search').toggleClass('show hide'); if ($('#adv-icon').hasClass('icon-arrowdown')){ $('#adv-icon').removeClass('icon-arrowdown'); $('#adv-icon').addClass('icon-arrowup'); } else { $('#adv-icon').removeClass('icon-arrowup'); $('#adv-icon').addClass('icon-arrowdown'); } }); 
 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="row"> <form id="advanced-search"> <div class="col-sm-3 col-xs-12"> <label class="control-label" for="typeselect">Type</label> <div class="custom-select fa-caret-down"> <select class="form-control" id="typeselect"> <option value="one">One</option> <option value="two">Two</option> <option value="three">Three</option> <option value="four">Four</option> <option value="five">Five</option> </select> </div> </div> <div class="col-sm-3 col-xs-12"> <label class="control-label" for="basedin">Based in</label> <div class="custom-select fa-caret-down"> <select class="form-control" id="basedin"> <option value="one">One</option> <option value="two">Two</option> <option value="three">Three</option> <option value="four">Four</option> <option value="five">Five</option> </select> </div> </div> <div class="col-sm-3 col-xs-12"> <label class="control-label" for="town">Town</label> <div class="custom-select fa-caret-down"> <select class="form-control" id="town"> <option value="one">One</option> <option value="two">Two</option> <option value="three">Three</option> <option value="four">Four</option> <option value="five">Five</option> </select> </div> </div> <div class="col-sm-3 col-xs-12"> <div class="btn btn-red"> RESET FILTER </div> </div> </form> </div> <div class="row"> <div class="advanced col-sm-2 col-xs-12"> <a href="#" class="glyphdown" id="advancetoggle"><i class="icon-arrowdown" id="adv-icon"></i></a> <span class="advanced-text"> Advanced Search</span> </div> </div> 

You have some issues in your code: 您的代码中有一些问题:

  1. transition: transform(0,100px) should be transform: translate(0,100px) . transition: transform(0,100px)应该transform: translate(0,100px)
  2. To get the transition you need to add transition:all .3s ease (for example). 要获得过渡,您需要添加transition:all .3s ease (例如)。
  3. Insert the span .advanced-text into the link #advancetoggle 将范围.advanced-text插入链接#advancetoggle

 $("#advancetoggle").click(function(event) { event.stopPropagation(); $(this).css('transform', 'translate(0,100px)'); console.log($(this)); $('#advanced-search').toggleClass('show hide'); if ($('#adv-icon').hasClass('icon-arrowdown')){ $('#adv-icon').removeClass('icon-arrowdown'); $('#adv-icon').addClass('icon-arrowup'); } else { $('#adv-icon').removeClass('icon-arrowup'); $('#adv-icon').addClass('icon-arrowdown'); } }); 
 #advancetoggle { display:inline-block; transition:all .3s ease; } 
 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="row"> <form id="advanced-search"> <div class="col-sm-3 col-xs-12"> <label class="control-label" for="typeselect">Type</label> <div class="custom-select fa-caret-down"> <select class="form-control" id="typeselect"> <option value="one">One</option> <option value="two">Two</option> <option value="three">Three</option> <option value="four">Four</option> <option value="five">Five</option> </select> </div> </div> <div class="col-sm-3 col-xs-12"> <label class="control-label" for="basedin">Based in</label> <div class="custom-select fa-caret-down"> <select class="form-control" id="basedin"> <option value="one">One</option> <option value="two">Two</option> <option value="three">Three</option> <option value="four">Four</option> <option value="five">Five</option> </select> </div> </div> <div class="col-sm-3 col-xs-12"> <label class="control-label" for="town">Town</label> <div class="custom-select fa-caret-down"> <select class="form-control" id="town"> <option value="one">One</option> <option value="two">Two</option> <option value="three">Three</option> <option value="four">Four</option> <option value="five">Five</option> </select> </div> </div> <div class="col-sm-3 col-xs-12"> <div class="btn btn-red"> RESET FILTER </div> </div> </form> </div> <div class="row"> <div class="advanced col-sm-2 col-xs-12"> <a href="#" class="glyphdown" id="advancetoggle"> <i class="icon-arrowdown" id="adv-icon"></i> <span class="advanced-text">Advanced Search</span> </a> </div> </div> 

try this, I think this is what you want.hope this will help. 试试这个,我想这就是您想要的。希望这会有所帮助。

 <!DOCTYPE html> <html> <head> <title></title> <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> </head> <style type="text/css"> .myrow{ display: none; margin: 10px; } .myrowtwo{ display: none; margin: 10px; } .buttonone , .buttontwo{ margin:10px; } </style> <body> <div class="btn btn-default buttonone">Press me !</div> <div class="row myrow"> <div class="col-sm-3 col-xs-12"> <label class="control-label" for="basedin">Based in</label> <div class="custom-select fa-caret-down"> <select class="form-control" id="basedin"> <option value="one">One</option> <option value="two">Two</option> <option value="three">Three</option> <option value="four">Four</option> <option value="five">Five</option> </select> </div> </div> <div class="col-sm-3 col-xs-12"> <label class="control-label" for="town">Town</label> <div class="custom-select fa-caret-down"> <select class="form-control" id="town"> <option value="one">One</option> <option value="two">Two</option> <option value="three">Three</option> <option value="four">Four</option> <option value="five">Five</option> </select> </div> </div> </div><br> <div class="clearfix"></div> <div class="btn btn-primary buttontwo">Press me now!</div> <div class="row myrowtwo"> <div class="col-sm-3 col-xs-12"> <label class="control-label" for="basedin">Based in</label> <div class="custom-select fa-caret-down"> <select class="form-control" id="basedin"> <option value="one">One</option> <option value="two">Two</option> <option value="three">Three</option> <option value="four">Four</option> <option value="five">Five</option> </select> </div> </div> <div class="col-sm-3 col-xs-12"> <label class="control-label" for="town">Town</label> <div class="custom-select fa-caret-down"> <select class="form-control" id="town"> <option value="one">One</option> <option value="two">Two</option> <option value="three">Three</option> <option value="four">Four</option> <option value="five">Five</option> </select> </div> </div> </div> <script type="text/javascript"> $(document).ready(function(){ $(".buttonone").click(function(){ $(".myrow").toggle(); }); $(".buttontwo").click(function(){ $(".myrowtwo").toggle(); }); }); </script> </body> </html> 

I have used online bootstrap and jquery.good luck. 我已经使用在线引导程序和jquery。祝你好运。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM