2016-01-21 184 views
0

我已經創建了一個按鈕來切換在它下面找到的某個div的可見性。有沒有辦法在隱藏和顯示轉換之間爲div添加動畫?另外,有沒有辦法讓窗口向下滾動到現在顯示的div的頂部;但只限於展示時,而不是隱藏時。toggleClass顯示隱藏的div - 添加動畫和窗口滾動?

http://codepen.io/john84/pen/MKrGWV

HTML代碼

<a href="#section-contact-print" class="btn btn-primary btn-lg formtoggle">Log In</a> 

<section id="section-contact-print" class="hidden"> 
    <form role="form"> 

     <div class="form-group"> 
      <label for="email">Email address:</label> 
      <input type="email" class="form-control" id="email"> 
     </div> 

     <div class="form-group"> 
      <label for="pwd">Password:</label> 
      <input type="password" class="form-control" id="pwd"> 
     </div> 

     <div class="checkbox"> 
      <label><input type="checkbox"> Remember me</label> 
     </div> 

     <button type="submit" class="btn btn-default">Submit</button> 

    </form> 
</section> 

JS(上jQuery庫的頂部)

$('.formtoggle').click(function (event) { 
    event.preventDefault(); 

    var target = $(this).attr('href'); 
    $(target).toggleClass('hidden show'); 
}); 
+0

你試過動畫什麼碼/滾動? – toomanyredirects

回答

1

在這裏你有我用向下滾動到你的目標錨代碼: http://codepen.io/anon/pen/MKrGXZ

$('.formtoggle').click(function (event) { 
    event.preventDefault(); 
    var $self = $(this); 
    var hash = $self.attr('href'); 
    $(hash).toggleClass('hidden show'); 

    // Scroll then add hash to url 
    $('html, body').stop().animate({ 
    scrollTop: $(hash).offset().top 
    }, 300, function() { 
    window.location.hash = hash; 
    }); 
}); 

關於動畫我只想用CSS爲與過渡性質,我認爲。

+0

謝謝,Mushr00m,爲窗口滾動工作得很漂亮。我試圖添加過渡屬性,但仍然沒有去動畫的一面...... http://codepen.io/john84/pen/MKrGWV – John

+1

@John:這裏當使用JQuery的動畫http://codepen.io/anon/pen/XXVyKa我使用了SlideToggle()而不是切換類「隱藏」。 – Mushr00m

+0

輝煌。最後一件事;你只有在打開div時纔有窗口滾動,而不是當用戶關閉div時?我相信你在改變滑動之前已經有了。 – John