如何使用jQuery切换div的背景颜色不透明度?

时间:2018-05-07 23:16:06

标签: javascript jquery css

我正在使用jQuery来打开和关闭汉堡包菜单。 “无颜色”和“颜色”类添加或删除背景。

目前,当此课程开始时,背景会在课程切换时突然填充。我希望它淡入/淡出。我试过'fadeTo'和'animate',但我无法让它们按需工作。

如何使用jQuery切换div的背景颜色不透明度?

$( '#navButton' ).click(function() {
   $( '.navigation' ).slideToggle( 'slow', function() {
      $( '.no-colour' ).toggleClass( 'colour' );
      $( '.fa-bars' ).toggleClass( 'fa-times' ); 
      // the above is not needed for this example it just swaps the menu icon with a 'x'
   });
});

CSS:

.colour {
   background-color: rgba(250, 250, 250, 1);
}

.no-colour {
   background-color: rgba(250, 250, 250, 0.1);
}

2 个答案:

答案 0 :(得分:2)

只需添加一个css transition,它就会淡入淡出。请观看以下代码段中的工作。

$( '#navButton' ).click(function() {
   $( '.navigation' ).toggleClass('colour').toggleClass('no-colour')
});
.colour {
   background-color: rgba(250, 250, 250, 1);
  transition: 2s;
}

.no-colour {
   background-color: rgba(250, 250, 250, 0.1);
  transition: 2s;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="navButton">PRESS</div>
  <div class="navigation no-colour">LKJSDFLSDF</div>

答案 1 :(得分:-1)

是的,过渡应该这样做:

.no-colour {
   background-color: rgba(250, 250, 250, 0.1);
   -webkit-transition: background-color 0.7s ease-out;
   -moz-transition: background-color 0.7s ease-out;
   -ms-transition: background-color 0.7s ease-out;
   -o-transition: background-color 0.7s ease-out;
   transition: background-color 0.7s ease-out;
}

.colour {
   background-color: rgba(250, 250, 250, 1);
}