2016-05-11 25 views
0

リンクの下にdivをリンクして上下にスライドさせるようにしようとしていますが、アニメーションが滑らかではありません。ここでは、コードは次のとおりです。jQuery - slideToggleのアニメーションがスムーズでない

HTML:

<div> 
<a href="#" id="may2016" class="month_name"><h2>May 2016</h2></a> 
       <div class="archive_links" style="display:none;"> 
        <p>Hello, 30. May 2016. 17:33</p> 
        <p>New One, 22. May 2016. 11:14</p> 
        <p>Third, 17. May 2016. 04:30</p> 
       </div> 
</div> 
<div> 
      <a href="#" id="april2016" class="month_name"><h2>April 2016</h2></a> 
       <div class="archive_links" style="display:none;"> 
        <p>Hello, 30. May 2016. 17:33</p> 
        <p>New One, 22. May 2016. 11:14</p> 
        <p>Third, 17. May 2016. 04:30</p> 
       </div> 
</div> 

CSS:

div.archive_links { 
      background:rgba(255,255,255, .15); 
      padding:5px; 
     } 

     a.month_name { 
      text-decoration:none; 
      color:white; 
      transition:color .4s ease; 
     } 

     a.month_name:hover { 
      color:#c7c7ee; 
      transition:color .4s ease; 
     } 

はJavaScript:

$(document).ready(function() { 
     $("#may2016").on('click', function() { 
      $(this).next(".archive_links").slideToggle(1000); 
     }); 

     $("#april2016").on('click', function() { 
      $(this).next(".archive_links").slideToggle(1000); 
     }); 
    }); 

ここjsFiddleです。 誰かを助けることができますか?

答えて

0

いいですね。唯一の唯一の詳細は、冒頭の小さな「ジャンプ」です。これは、jQueryがdisplayblockをターゲットに設定したときに、pのマージンがすぐに表示されるためです。マージンを取り除くか、pdivの内側に置き、代わりにdivをアニメーション化してください。

+0

2016年5月リンクをクリックして、アニメーションが最初のdivを消している間に、2016年4月リンクのジャンプを確認します。マージンを取り除こうとしたが、助けにならなかった。 –

+0

それは私が答えで説明したものです。 – Gabriel

+0

はい、p要素はアニメートされていません。それらを保持するクラスarchive_linksを持つdivはアニメートされています。私はpとdiv要素のマージンを取り除こうとしましたが、助けにはなりませんでした。あなたはあなたが思っているもののjsFiddleを試してみることができますか? –

関連する問題