10

I know that Firefox has a way to simulate hover, active and focus filters.

enter image description here

Is there any way to simulate onmouseover elevation?

I want to simulate this in two elements together, is this possible?

I didn't find any extension for this purpose. Thank you in advance.

surfmuggle
  • 4,899
  • 6
  • 42
  • 71
Jose Serodio
  • 1,290
  • 2
  • 15
  • 29

2 Answers2

8

Yes, as it is selected in your image you can use the dispatchEvent method only you must previously create the event in the chrome console and execute it.

  1. pre-create :hover event
var event = new MouseEvent("mouseover");
  1. You send the event to the DOM element where $0 is the element that you have selected in the debugger of your browser (in your case a div with the class facebox)
$0.dispatchEvent(event)
macorreag
  • 171
  • 2
  • 8
6

You can use dispatch to send / fire an event for an element: element.dispatchEvent(event);. The support may vary on different browsers and versions; my demo on jsfiddle worked on chrome 65.

Given this html

<div id="menu">
  <h3>Menu</h3>
  <div>Sample to fire onmouseover using a script</div>
  <ul>
   <li>one</li>
   <li>two</li>
   <li>three</li>
  </ul>
</div>
<button onclick="simulateMouseOver()">simulate onMouseOver</button>

Below an onmouseover-event is set for <div id=menu>. As soon as the mouse is moved over the div the event fires:

var menu =  document.getElementById("menu");
menu.addEventListener("mouseover", function(event){   

    event.target.style.backgroundColor = "blue";
    setTimeout(function() {
      event.target.style.backgroundColor = "";
    }, 500);
}, false)();

To raise the onmouseover-event from inside a script you

  1. first have to create the correct event
  2. an then fire / dispatch this event to the target-element

See this code

function simulateMouseOver() {
  var listItems = document.querySelectorAll("ul li")
    var item1 = listItems.item(1);
  var event = new MouseEvent('mouseover', 
       {view: window, bubbles: true, cancelable: true});

  var cancelled = !item1.dispatchEvent(event);
  if (cancelled) {
    // a handler called preventDefault.

  } else {
    // none of the handlers called preventDefault.

  }
}

You can find out more at

The question simulate a mouse click from 2011 or Trigger events in javascript from 2010 may be of use regarding the support in older browsers.

surfmuggle
  • 4,899
  • 6
  • 42
  • 71
  • Additional links [Trigger css hover with JS](https://stackoverflow.com/questions/4347116/) or [simulate css hover](https://stackoverflow.com/questions/17226676/) – surfmuggle Mar 13 '18 at 22:34
  • This answer helped me achieve the forced mouseover event firing I was looking for in my Angular app. This worked for me: `$('TARGET_SELECTOR').dispatchEvent(new MouseEvent('mouseover', {view: window, bubbles: true, cancelable: true}));` in Chrome v71.0.3578.80. – Kon Feb 28 '19 at 15:25