Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jQuery淡出div?_Jquery - Fatal编程技术网

如何使用jQuery淡出div?

如何使用jQuery淡出div?,jquery,Jquery,有没有办法在5秒钟后不使用setTimeOut功能而淡出div 假设你的意思是“等待5秒,然后淡出”,我认为你必须使用插件来强制延迟,例如,不确定是要5秒还是5秒后开始 需要5秒钟:jQuery fadeout函数可用于div,它将降低元素的不透明度,直到为0,然后在div中不显示。淡入淡出的速度是该函数的一个参数 要在5秒钟内启动它,您需要某种计时器,它可以在文档或窗口准备就绪时启动,或者在div准备就绪时启动,具体取决于您需要什么。功能如何。看起来像这样: $("#myDiv").fade

有没有办法在5秒钟后不使用setTimeOut功能而淡出div

假设你的意思是“等待5秒,然后淡出”,我认为你必须使用插件来强制延迟,例如,不确定是要5秒还是5秒后开始

需要5秒钟:jQuery fadeout函数可用于div,它将降低元素的不透明度,直到为0,然后在div中不显示。淡入淡出的速度是该函数的一个参数

要在5秒钟内启动它,您需要某种计时器,它可以在文档或窗口准备就绪时启动,或者在div准备就绪时启动,具体取决于您需要什么。

功能如何。看起来像这样:

$("#myDiv").fadeOut(5000);
$('#div').delay(5000, function(){$(#div').fadeOut()})
$('#myDiv').delay(800).fadeOut(1000);

案例1:如果您想在5秒后开始淡出,请使用以下方法:

jQuery.fn.delay = function(time,func){
    return this.each(function(){
        setTimeout(func,time);
    });
};
$('#div').fadeOut(5000)
然后,像这样使用它:

$("#myDiv").fadeOut(5000);
$('#div').delay(5000, function(){$(#div').fadeOut()})
$('#myDiv').delay(800).fadeOut(1000);
如果不使用setTimeOut,就无法实现这一点

案例2:如果您希望淡出的持续时间为5秒,请使用以下选项:

jQuery.fn.delay = function(time,func){
    return this.each(function(){
        setTimeout(func,time);
    });
};
$('#div').fadeOut(5000)

//我使用我刚写的暂停插件

$.fn.pause = function(duration) {
    $(this).animate({ dummy: 1 }, duration);
    return this;
};
可以这样称呼:

$("#mainImage").pause(5000).fadeOut();

注意:您不需要回拨。

我只是遇到了同样的问题,我认为标记的答案实际上并不满足问题。如果有人这样指定的话

$("#myDiv").fadeOut(5000);
如suggsted所述,衰落过程本身将持续5秒,但不会在5秒后开始

因此,我正在寻找一个替代方案,而不必包括另一个jQuery插件等。我提出的最简单的解决方案是按如下方式编写:

$("#myDiv").fadeTo(5000,1).fadeOut(1000);
它使用了fadeTo效果,不知何故它是一种“黑客”。我让fadeTo运行5秒,然后让它淡入1=100%不透明度。这样,用户就不会感觉到任何变化。之后,正常呼叫淡出,持续时间为1秒

我想这个解决方案相当简单,因为它不需要任何额外的插件,可以用一行代码编写

干杯

//编辑:
显然,现在有可能做这样的事情:

$("#myDiv").fadeOut(5000);
$('#div').delay(5000, function(){$(#div').fadeOut()})
$('#myDiv').delay(800).fadeOut(1000);

一些更酷、更有用的函数。

大家都知道jQuery1.4中现在有一个延迟函数,对吗

$('#div').delay(5000).fadeOut(400)

这就是您如何做到的,而不必添加任何自定义函数或插件。它是jquery 1.4的本机功能,您希望动画播放5秒还是希望在动画开始前等待5秒?是的,我希望在动画开始前等待5秒。解决了,我写了函数a$(“div”).fadeOut(10000);那它就是我想要做的!这并不能真正回答问题。他想在5秒后淡出,而不是让淡出持续5秒。我想在动画开始前等待5秒。解决了,我把函数写成$(“div”).fadeOut(10000);然后使用setTimeOut()函数,它就可以正常工作了。非常感谢。事实上,淡出立即开始:(我同意你的评论,朋友们,当这个问题发布时,当时这个问题没有合适的答案,我也不想使用setTimeOut()或任何其他插件,好的,现在我将接受这个问题的正确答案。感谢你宝贵的评论。出于某种原因,暂停(5000).css(“opacity”,.5)在设置不透明度之前不会暂停,但它适用于淡出。有人想解释一下吗?注意:当我说“plugin i just write”时,我试图表示“未完全测试”,但它应该适用于css()要求的内容不使用动画队列。如果要在更改不透明度之前暂停,则需要类似“暂停(5000).animate({'opacity':0.5});