7

I have <div class="animate"> and in css:

div.animate:hover{
//do stuff
}

But would also like to invoke this via javascript.

Is it possible?

3

2 Answers 2

6

As described in Trigger css hover with JS this is not possible as-is (if you want it as described exactly at the time of the creation of this answer).

But the main goal is achievable by:

  1. Setting a class hover (or whatever name) as well as the selector :hover in the CSS.
  2. Calling .addClass("hover") to trigger CSS, and .trigger("hover") or .trigger("mouseenter") to trigger the JS.
  3. Ensuring the mouseleave handler. or 2nd .hover() handler, clears the hover class if present.
Sign up to request clarification or add additional context in comments.

Comments

1

Instead of doing it this way, I suggest you just add a class to the other tag. In jQuery it would be:

 $(window).load(function() {
    $('.trigger-animate').hover(function(){
        $('.animate').addClass('hover');
    });
}

I'd recommend using this method, because it handles both onMouseOver and onMouseOut (this way you can also remove the class when your mouse leaves $('.trigger-animate') if you so desired using this syntax:

.hover( handlerIn(eventObject), handlerOut(eventObject) )
 checking out the documentation

5 Comments

I'm new to jQuery, would this go in the "onMouseOver" ? If not, where would I put this code
Put it in $(window).load -------- .hover is a replacement for onMouseOver, so you don't even need it!
Sorry, I'm still lost. Where do I put the .hover(...) in your second code snippet
The second snippet is just just the full syntactical documentation for the first. All you would need is the first one, and you could add a second function using the syntax of the second to handle when the mouse moves out. Hope that clears things up a bit.
is there no way to do this with vanilla JS?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.