jQuery动画仅在动画期间更改不透明度
jQuery animate change opacity ONLY during animation
我有这个jquery命令:
$('html, body').animate({
scrollTop: stopY,
opacity: '0.5'
}, 1000);
(其中stopY是我要停止的位置)。唯一的想法是,我希望不透明度只在滚动过程中更改为0.5,一旦我处于stopY位置,它就会回到1。
在animate
的选项参数中提供一个complete
回调,在动画完成时将不透明度设置回1:
var options = {
duration: 1000,
complete: function(){ $('html, body').css('opacity', 1) }
});
$('html, body').css('opacity', 0.5).animate({ scrollTop: stopY }, options)
可以使用.animate()
的start
选项将目标元素opacity
设置为0
;.promise()
、.then()
;在.then()
处对目标元素调用.animate()
以将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;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<body>
<div>scroll to here</div>
</body>
您当前的代码正在设置不透明度和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);
}
});
相关文章:
- Greenstock不透明度动画从0到1再返回
- 设置1400个Raphael.js对象的不透明度动画会影响动画性能
- 悬停不起作用时对不透明度更改进行动画处理
- jQuery淡入淡出/动画不透明度到不同的显示类型,然后阻止
- 在Raphael JS中,不透明度:0和开始动画到不透明度:1之间的延迟
- jQuery动画仅在动画期间更改不透明度
- CSS不透明度转换;在动画过程中不考虑覆盖不透明度
- 动画不透明度弄乱了我的文本
- 为不透明度和位置添加动画效果
- 在不透明度上淡化动画 - NaN 值
- JQuery 悬停函数不透明度动画
- 与其他变换函数异步制作不透明度动画
- 使用CSS动画更改显示和不透明度
- Raphael js - 在组上动画不透明度,同时保留单个元素的不透明度
- Fabric.js在多个对象上的低FPS动画不透明度
- 正确的jquery动画不透明度,淡出,&向上滑动页面加载效果
- 为什么动画不透明度不工作在铬
- jquery动画不透明度箭头mouseenter鼠标离开
- javascript动画不透明度改变的错误行为
- Jquery动画不透明度和边距的其他元素