Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jquery fade and slide simultaneously

Tags:

jquery

I'm trying to both slide/fade a div simultaneously on a hover, then slide/fade it out at the end of the hover, using JQuery. The slide/fade out work properly, but the slide/fade in doesn't. It just slides in without the fade. Any ideas?

#myDiv {     display: none;     height: 110px;     position: absolute;     bottom: 0px; left: 0px; }  $('#anotherDiv').hover(function() {     $('#myDiv').stop(true, true).slideDown(slideDuration).fadeIn({ duration: slideDuration, queue: false }); }, function() {     $('#myDiv').stop(true, true).slideUp(slideDuration).fadeOut({ duration: slideDuration, queue: false }); }); 
like image 595
dchang Avatar asked Sep 22 '11 19:09

dchang


2 Answers

idk if this helps or not, but you can skip the slideUp and fadeIn shortcuts and just use animate:

http://jsfiddle.net/bZXjv/

$('#anotherDiv').hover(function() {     $('#myDiv')         .stop(true, true)         .animate({             height:"toggle",             opacity:"toggle"         },slideDuration); }); 
like image 82
Joseph Marikle Avatar answered Sep 17 '22 18:09

Joseph Marikle


The answer is that once either effects activate, it takes the inline css property "display=none" off of the element. These hide effects require the display property to be set to "none". So, just rearrange the order of methods and add a css-modifier in the chain between fade and slide.

$('#anotherDiv').hover(function() {     $('#myDiv').stop(true, true).fadeIn({ duration: slideDuration, queue: false }).css('display', 'none').slideDown(slideDuration);     }, function() {     $('#myDiv').stop(true, true).fadeOut({ duration: slideDuration, queue: false }).slideUp(slideDuration); }); 
like image 28
Matt S Avatar answered Sep 17 '22 18:09

Matt S