簡體   English   中英

如何在JQuery中為addClass / removeclass設置動畫

[英]How to animate addClass/removeclass in JQuery

我正在嘗試做菜單。 當用戶向下滾動菜單消失時,向上滾動時再次出現。 我在添加動畫效果時遇到問題。 我不希望菜單立即消失,但是需要一些時間。 我嘗試使用動畫功能,但無法正常工作。

謝謝。

<body>
  <nav class="site-navbar">
  </nav>
</body>

body {
  height:300vh;
  width:100%;
  background-color:yellow;
  margin:0;
  padding:0;
    .site-navbar {
      width:100%;
      height:40px;
      background-color:red;
      position:fixed;
      top:0px;
      -webkit-transition: all 0.5s ease;
      -moz-transition: all 0.5s ease;
      -o-transition: all 0.5s ease;
      transition: all 0.5s ease

  }
    .nav-up {
      top:-40px;
    }
}


        var prevScroll = 0;
                $(document).scroll(function() {
            var currentPos = $(this).scrollTop(); 
            if(currentPos > prevScroll) {
               $('nav').removeClass('site-navbar').addClass('nav-up');
  }
            else {
                $('nav').removeClass('nav-up').addClass('site-navbar');
            }

            prevScroll = currentPos;

        })

https://jsfiddle.net/m6r8z8wp/2/

在添加新的FIDDLE之前無需刪除類

var prevScroll = 0;
$(document).scroll(function() {
    var currentPos = $(this).scrollTop(); 
    if(currentPos > prevScroll) {
    $('nav').addClass('nav-up');
    } else {
        $('nav').removeClass('nav-up').addClass('site-navbar');
    }
    prevScroll = currentPos;
});

如果刪除該類,則也會刪除過渡

演示

 var prevScroll = 0; $(document).scroll(function() { var currentPos = $(this).scrollTop(); if (currentPos > prevScroll) { $('nav').slideUp("slow", "linear"); } else { $('nav').slideDown("slow", "linear"); } prevScroll = currentPos; }) 
 body { height: 300vh; width: 100%; background-color: yellow; margin: 0; padding: 0; } .site-navbar { width: 100%; height: 40px; background-color: red; position: fixed; top: 0px; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <nav class="site-navbar"> </nav> 

或者您可以使用jquery slideUp() / slideDown()進行動畫制作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM