我如何知道是否发生了淡入淡出效果?

时间:2015-03-10 15:51:22

标签: jquery fade

我做了fiddle,其想法是:

该函数采用元素(el),如果" el"在fadeIn或fadeOut中然后返回true,否则返回false。有可能吗?

function fadeIsRunning( el ){
    /* How to achieve this ? */
    return false || true;
}

提前致谢!



var obj = $("div");

$("#fade").on("click", function(){
	obj.fadeToggle(3000);
});

$("#decision").on("click", function(){
	if (fadeIsRunning(obj)) {
		console.log( "Fade is running" );
	}
	else {
		console.log( "Fade isn't running" );
	}
});


function fadeIsRunning( el ){
	/* How to achieve this ? */
    return false || true;
}

div {
    position: absolute;
    margin: 20px;
    padding: 35px;
    background-color: #99f;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" value="fade" id="fade" />
<input type="button" value="decision" id="decision" />
<div>X</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:3)

您可以合并.is() method:animated selector.is(':animated'),以确定元素是否正在积极褪色。

Updated Example

function fadeIsRunning( el ){
    return $(el).is(':animated');
}

参考文献:

答案 1 :(得分:1)

<强> jsFiddle Demo

检查jquery中的fx queue jQuery以查看元素的进度。如果它在fx队列中并且衰落,它的状态将是“inprogress”

function fadeIsRunning( el ){
 return $.queue(el[0]) == "inprogress";
}