Here is a jQuery slide function I have applied to a div on hover in order to slide a button down.
It works fine except that now everytime someone moves in and out of it, it keeps bobbing up and down.
I figured if I put a one or two second delay timer on it it would make more sense.
How would I modify the function to run the slide down only if the user is on the div for over a second or two?
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js "></script> <script type="text/javascript"> $("#NewsStrip").hover( function () { $("#SeeAllEvents").slideDown('slow'); }, function () { $("#SeeAllEvents").slideUp('slow'); }); </script>
The mouseover event occurs when a mouse pointer comes over an element, and mouseout – when it leaves. These events are special, because they have property relatedTarget . This property complements target . When a mouse leaves one element for another, one of them becomes target , and the other one – relatedTarget .
The onmouseover event occurs when the mouse pointer is moved onto an element, or onto one of its children.
The mouseout() method triggers the mouseout event, or attaches a function to run when a mouseout event occurs. Note: Unlike the mouseleave event, the mouseout event is triggered if a mouse pointer leaves any child elements as well as the selected element.
jQuery mouseover() MethodThe mouseover() method triggers the mouseover event, or attaches a function to run when a mouseover event occurs. Note: Unlike the mouseenter event, the mouseover event triggers if a mouse pointer enters any child elements as well as the selected element.
You need to set a timer on mouseover and clear it either when the slide is activated or on mouseout, whichever occurs first:
var timeoutId; $("#NewsStrip").hover(function() { if (!timeoutId) { timeoutId = window.setTimeout(function() { timeoutId = null; // EDIT: added this line $("#SeeAllEvents").slideDown('slow'); }, 2000); } }, function () { if (timeoutId) { window.clearTimeout(timeoutId); timeoutId = null; } else { $("#SeeAllEvents").slideUp('slow'); } });
See it in action.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With