Hover State On Menu Buttons Stays On When Returning to the Slide

I'm still having some issues with my states in a project I'm working on. The mouse hovers over a button and the hover state shows as expected. The learner clicks the button to go to another slide. Sometimes (not all the time), the hover state is still on when returning back to the menu slide. When the mouse passes back over the button, it seems to reset and function properly again. I would like for the button to have a visited state by default when returning to the menu slide. I've tried a number of custom hover and visited states to work around this. Although my work-arounds solved the issue at hand, other problems arose.

3 Replies
Walt Hamilton

A lot of things contribute to this problem. One is that the built-in Hover state takes precedence over any other state. That means that no matter what state the object is in, it will change to Hover when the mouse is over it.

But, if you have a jump trigger attached to clicking the object, it will jump, and the object will never sense the mouse leaving it - because it doesn't. Then when you revisit that page, if the slide is set to remember previous state, the object will be in the Hover state until the mouse leaves it. Like you have noticed, the mouse can't leave until it first enters.

If you could set the slide to return to initial state on revisit, it would solve the problem with the Hover state, but then the object wouldn't be in Visited state,

I would try creating a custom state to take the place, but you can't name it Hover. Create a trigger to change it to Custom_Hover when hovered over. Create one to change it to Normal when it is clicked, and one to jump when clicked. The change state must be in the list before the jump, or it won't be executed. Leave the Visited state, and it should show on return.

Robbie Christian

Thanks so much for your reply, Walt. I really appreciate it! Your solution is step for step, precisely what I did when I first discovered this issue, but it then led to other glitchy behaviors. I haven't gone back to retry some of my solutions since uninstalling and reinstalling Storyline, though.

The most unusual thing to me is why the buttons sometimes behave as I want them to but sometimes stay stuck in the hover state. The inconsistency is what throws me off the most.

It's odd that the hover state would be programmed to get stuck even after revisiting a slide and the mouse is not hovering over it.

Anyway, shortly before seeing this message, I decided to play around with setting true/false variables. Clicking the button triggers a jump to a slide, and then a true/false variable switches. I then added a trigger so that when the timeline starts on the menu slide, each button will be set to visited as long as its corresponding visited variable is true. The thing I like most about it is that even if the learner uses the player's menu to navigate to the slide instead of the buttons on the slide, the buttons will still show as having been visited when they return to the menu slide.

Walt Hamilton

It's odd that the hover state would be programmed to get stuck even after revisiting a slide and the mouse is not hovering over it.

It's not programmed that way. The hover state is tied to the object, and if you select return to initial state on hover off,  it is programmed to stay in hover state until it senses the mouse moving off it. If you have moved to a different slide, it can't sense mouse movement. So when you come back to that slide, it is still waiting to sense the mouse leaving it. Objects don't know where the mouse is, only if it is moving onto or off of them.

The most unusual thing to me is why the buttons sometimes behave as I want them to but sometimes stay stuck in the hover state.

I never could get it to do that, so I can't help with that.

Variables are by far the most reliable method for this. I'm glad you got it going.