使用 jQuery 动画隐藏页面元素而不导致显示:none;

问题描述 投票:0回答:3

我正在使用 Uploadify 插件将文件上传到我的服务器,我希望上传表单在上传初始化后淡出,进度条淡入。唯一的问题是,当上传表单获得

display: none;
属性时,Uploadify 停止工作,所有 jQuery 淡入淡出效果似乎都会在持续时间结束后导致。

我尝试这样做:

$('#upload-form').css('opacity', 0);

有效。表单隐藏后继续上传,但没有淡入淡出效果

有什么解决办法吗?谢谢!

jquery uploadify fade
3个回答
3
投票

这可能是一个解决方法:

$('#upload-form').fadeTo(1000, 0.01, function() {
    $(this).css('opacity', 0);
});

0
投票

您可以使用jQuery.animate:

$('#upload-form').animate({
    opacity: 0
}, 'slow');

0
投票

所以现在到了 2024 年,您只需使用 CSS 就可以轻松做到这一点

对于一个简单的更改来说,甚至不需要 jQuery 动画或淡入淡出功能,并且它将避免 jQuery 结束 hide() 动画时出现的问题:display: none 等。只需使用 CSS 属性transition-duration,如:

.fade-to-visible { 过渡持续时间:1s;不透明度:1; } .fade-to-invisible { 过渡持续时间:2s;不透明度:0; }

在此示例中,设置淡出至不可见类将在 2 秒内淡出,然后删除该类并将其设置为淡入可见将在 1 秒内淡出。

如果您为任何属性设置 CSS,只要设置了起始值,它就会在过渡持续时间的长度内进行动画处理(无法从无过渡到有内容,必须首先将其设置为起始属性,通常是 0 或 100,然后用其他东西设置一个类)。因此,在这种情况下,“不透明度”转换在所有现代浏览器中本地实现了“淡入淡出”效果,无需任何第三方插件,尽管使用 jQuery 来设置或删除类仍然可能是最快/最方便的方法,而不是普通的 js .

© www.soinside.com 2019 - 2024. All rights reserved.