大佬教程收集整理的这篇文章主要介绍了为什么在中断fadeOut()后使用jQuery fadeIn()不起作用?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
看看my jsFiddle就是一个例子.在这种情况下,当用户单击“Click Me”时,我想淡入“fadeP”标记.我有一个setTimeout来淡出它(而不是我的事件监听器).超时将在fadeIn完成之前触发.它将停止fadeIn(也清除动画队列)和fadeOut.如果用户再次点击“Click Me”(可能在fadeOut完成之前),我想重新淡入“fadeP”标签.
点击“Click Me”几次(要么允许时间显示元素,要么消失,否则它似乎没有区别).每次,fadeIn都会使元素稍微减少.我想让它在每次用户点击时淡化元素.
这与stop()有关.似乎记得在fadeIn停止的那一刻,它有一定的不透明度,并认为这种不透明度是不透明度的完全褪色.当你再来fadeIn时,它会消失到“记忆”的不透明度,但是没有到达那里,因为它是停止的,这使得它记住不透明度作为完全褪色的不透明度等等.
我需要它来在事件触发和fadeOut时停止fadeIn.我需要它来在事件触发和淡入时停止fadeOut.我需要fadeIn尝试每次都淡入相同的不透明度.有任何想法吗?
fadeP = $('#fadeP'); clickMe = $('#clickMe'); clickMe.click(function(){ fadeP.stop(true).fadeIn(1000); setTimeout(function(){ fadeP.stop(true).fadeOut('300',function() { $(this).css('opacity',''); }); },500); });
编辑
我修改了代码以使用您的评论.您可以自己设置不透明度的动画,以从当前值开始.
fadeP = $('#fadeP'); clickMe = $('#clickMe'); clickMe.click(function(){ var currentOpacity = fadeP.css('opacity'); fadeP.stop(true).show().css('opacity',(currentOpacity < 1) ? currentOpacity : 0 ).animate({opacity: 1}); setTimeout(function(){ fadeP.stop(true).fadeOut(5000,500); });
编辑2
与OP合作的最终解决方案;-)
clickMe.click(function(){ if(fadeP.css('display') == 'none') fadeP.css('opacity','0'); fadeP.stop(true).show().animate({opacity: 1},1000,function () { $(this).css('opacity',''); } ); setTimeout(function(){ fadeP.stop(true).fadeOut(1000); },500); });
以上是大佬教程为你收集整理的为什么在中断fadeOut()后使用jQuery fadeIn()不起作用?全部内容,希望文章能够帮你解决为什么在中断fadeOut()后使用jQuery fadeIn()不起作用?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。