jQuery动画在动画期间仅改变不透明度

时间:2016-04-05 15:29:26

标签: javascript jquery animation jquery-animate

我有这个jquery命令:

$('html, body').animate({
                        scrollTop: stopY,
                        opacity: '0.5'
                        }, 1000);

(其中stopY是我要停止的位置)。 唯一的想法是,我希望仅在滚动期间将不透明度更改为0.5,并且一旦我处于stopY位置,它将返回到1。

3 个答案:

答案 0 :(得分:1)

ungetc(ch, stdin);的options参数中提供complete回调,该参数在完成动画后将不透明度设置为1:

animate

答案 1 :(得分:1)

您可以使用start的{​​{1}}选项将目标元素.animate()设置为opacity; 0.promise();在.then()的目标元素上调用.animate(),将.then()设置为opacity

1
var stopY = 400, div = $("div");

$("html, body").animate({
  scrollTop: stopY
}, {
  duration: 1000,
  start: function() {
    div.css("opacity", 0)
  }
}).promise().then(function() {
  div.animate({
    opacity: 1
  }, 500)
})
body {
  height: 800px;
}
div {
  position: relative;
  top: 400px;
}

答案 2 :(得分:0)

您当前的代码动画不透明度以及scrollTop。你需要做的是:

$("body").css("opacity",0.5);
$('html, body').animate({
          scrollTop: stopY
}, 1000, function () { 
    if ($(this).is("body")) { //Done is triggered for both html and body, so we limit it to only one of the two triggers
       $("body").css("opacity",1);
    }
});