2015-08-10 3 views
2

У меня есть кнопка «Подробнее», которая увеличивает высоту div, удаляя атрибут css max-height, но мне нужна анимация, например, с функцией jQuery slideToggle(), чтобы «вытащить «Остальная часть div.Подробнее кнопка, которая постепенно удаляет максимальную высоту

Это мой код:

<div id="Presentation" style="text-align:justify;"><?php echo $data['texte_presentation'];?></div> 
      <div id="fadeout" class="fadeout" style="display:none;"></div> 
       <div id="DivReadMore" style="text-align:right;margin-top:-4em;display:none;"> 
       <hr style="margin:5px;"><button id="BoutonReadMore" class="btn btn-warning btn-block"><i class="fa fa-plus"></i> Lire la suite</button> 
       </div> 
      <script> 
      $(document).ready(function() { 
       ReadMore(); 
       $(window).on('resize', function(){ 
        if($('#Presentation').hasClass("read-more")) 
        {}else{ 
         ReadMore(); 
        } 
       }); 
       $("#BoutonReadMore").click(function(){ 
        $("#Presentation").css({'max-height':'', 'overflow':''}); 
        $("#DivReadMore").hide(); 
        $("#fadeout").hide(); 
        $("#Presentation").addClass("read-more"); 
       }); 
      }); 
      function ReadMore() { 
       var hauteur = $('#Presentation').height(); 
       if(hauteur > 200) 
       { 
        $("#Presentation").css({'max-height':'250px', 'overflow':'hidden'}); 
        $("#fadeout").show(); 
        $("#DivReadMore").show(); 

       }else{ 
       $("#Presentation").css({'max-height':'', 'overflow':''}); 
        $("#fadeout").hide(); 
        $("#DivReadMore").hide(); 
       } 
      } 
      </script> 

Вы идею?

+2

Вы слышали о переходах css? http://www.w3schools.com/css/tryit.asp?filename=trycss3_transition2 – DarthCoder

+0

@DarthCoder Нет, я собираюсь искать это. –

ответ

1

Поместите это в css блока: transition: ease 0.5s all;. Возможно, что он не работает из-за отсутствия максимальной высоты на блоке.

Трюк, который мне нравится делать, - это просто увеличить максимальную высоту с помощью jQuery.animate. Это создает анимацию :)

+0

Я искал jQuery.animate, и мне удалось сделать анимацию, которую я хочу. Я заменил '$ (« # Презентация »). Css ({'max-height': '', 'overflow': ''});' by '$ ('# Presentation'). Animate ({max -hight ':' 10000px ',' overflow ':' visible '}, {' duration ': 3000}); ' –

+1

Awesome :) Возможно, вы можете сделать менее огромную высоту, 5000px все равно будет огромным, и вы сможете наслаждаться анимация еще;) upvotes welcome: D –

+0

Действительно, возможно, это тоже немного;) –