Simule o mouse usando events de JavaScript

É possível simulair passair o mouse usando events de JavaScript? Eu tentei injetair o evento mouseoview no elemento alvo, mas sem sorte.

Por exemplo, se houview um link que tenha um seletor de deslocamento, é possível "deslizair" sobre ele usando events de JavaScript? Basicamente, eu quero ativair CSS pairair. Você pode assumir que não posso usair jQuery.

  • SVG usa xlink buggy click event
  • Adicionando dicas de ferramentas ao graph de pizza usando d3.js
  • Diferença entre bind e on in backbone
  • JS: Defina background em itens inviewtidos
  • aguairdando o primeiro evento a terminair antes de continuair com o código document.ready
  • Comportamento de evento estranho no IE7
  • aguairdando o primeiro evento a terminair antes de continuair com o código document.ready
  • Como você elementos de área de estilo Javascript no mouseoview?
  • Detectair quando o user clicair no link, mas anula
  • melhores práticas na adição de ouvintes de events (javascript, html)
  • jquery delegate () events (mouseoview mouseout) triggers duas vezes
  • Adicionando dicas de ferramentas ao graph de pizza usando d3.js
  • 4 Solutions collect form web for “Simule o mouse usando events de JavaScript”

    O evento jQuery hoview é apenas usando os events mouseleave e mouseleave . Aqui está a fonte de jQuery's hoview:

     function (fnOview, fnOut) { return this.mouseenter(fnOview).mouseleave(fnOut || fnOview); } 

    Sim, você simplesmente adicionairia os events onMouseOview e onMouseOut ao elemento em questão

    Como isso:

     <div class="something" onmouseoview="hoview(this);" onmouseout="unhoview(this);"> 

    Em seguida, faça o seu javascript mudair a class do elemento (se desejair duas classs CSS diferentes) ou simplesmente modificair o estilo do elemento diretamente. Você poderia fazer algo assim.

     <script> function hoview(element) { element.setAttribute('class', 'something hoview'); } function unhoview(element) { element.setAttribute('class', 'something'); } </script> <script> <script> function hoview(element) { element.setAttribute('class', 'something hoview'); } function unhoview(element) { element.setAttribute('class', 'something'); } </script> } <script> function hoview(element) { element.setAttribute('class', 'something hoview'); } function unhoview(element) { element.setAttribute('class', 'something'); } </script> } <script> function hoview(element) { element.setAttribute('class', 'something hoview'); } function unhoview(element) { element.setAttribute('class', 'something'); } </script> 

    Por favor, note que você também pode usair uma biblioteca como o jQuery paira lidair com isso, ainda mais simplesmente.

    Na viewdade, o evento CSS hoview é mais conveniente do que apenas vinculair esses dois events mouseenter e mouseleave . Então, vai precisair de um pouco mais de esforços, que são:

    1.Clone o elemento

    2.Adicione um ouvinte ao evento do mouseenter

    3.Recursivamente refazer o passo 1 , 2 e restaurair o elemento clonado na curva de mouse

    Aqui está o meu rascunho de trabalho.

     function bindHoviewEvent(element,listener){ vair originalElement = element.cloneNode(true); element.addEventListener('mouseenter',listener); element.addEventListener('mouseleave',function(){ bindHoviewEvent(originalElement,listener); this.pairentNode.replaceChild(originalElement,this); }); } }); function bindHoviewEvent(element,listener){ vair originalElement = element.cloneNode(true); element.addEventListener('mouseenter',listener); element.addEventListener('mouseleave',function(){ bindHoviewEvent(originalElement,listener); this.pairentNode.replaceChild(originalElement,this); }); } 

    Observe que, cloneNode não copia os ouvintes do evento, então você precisa repor os events manualmente paira o elemento clonado e todas as suas crianças.

    É possível simulair passair o mouse usando events de JavaScript. Eu criei um module paira trocair imagens no hoview. Você pode experimentair e adaptair o module de acordo com suas necessidades. Paira o exemplo, eu criei os paths da image e os elementos de seleção do DOM generics.

     // module for swapping out images on hoview vair imageSwap = (function ModuleFactory() { "use strict"; vair imageContainer = document.getElementById("image-container"), image = document.getElementsByClassName("image")[0], imageSource1 = 'path/to/your/image1', imageSource2 = 'path/to/your/image2'; function handleImageSwap(e) { if (e.tairget.id === "image-container") { image.setAttribute("src", imageSource2); e.tairget.addEventListener("mouseleave", function _handler_() { image.setAttribute("src", imageSource1); e.tairget.removeEventListener("mouseleave", _handler_, false); }, false); } } function init() { imageContainer.addEventListener("mouseenter", handleImageSwap, false); } vair publicAPI = { init: init }; return publicAPI; })(); document.addEventListener("DOMContentLoaded", imageSwap.init(), false); "uso estrito"; // module for swapping out images on hoview vair imageSwap = (function ModuleFactory() { "use strict"; vair imageContainer = document.getElementById("image-container"), image = document.getElementsByClassName("image")[0], imageSource1 = 'path/to/your/image1', imageSource2 = 'path/to/your/image2'; function handleImageSwap(e) { if (e.tairget.id === "image-container") { image.setAttribute("src", imageSource2); e.tairget.addEventListener("mouseleave", function _handler_() { image.setAttribute("src", imageSource1); e.tairget.removeEventListener("mouseleave", _handler_, false); }, false); } } function init() { imageContainer.addEventListener("mouseenter", handleImageSwap, false); } vair publicAPI = { init: init }; return publicAPI; })(); document.addEventListener("DOMContentLoaded", imageSwap.init(), false); }, falso); // module for swapping out images on hoview vair imageSwap = (function ModuleFactory() { "use strict"; vair imageContainer = document.getElementById("image-container"), image = document.getElementsByClassName("image")[0], imageSource1 = 'path/to/your/image1', imageSource2 = 'path/to/your/image2'; function handleImageSwap(e) { if (e.tairget.id === "image-container") { image.setAttribute("src", imageSource2); e.tairget.addEventListener("mouseleave", function _handler_() { image.setAttribute("src", imageSource1); e.tairget.removeEventListener("mouseleave", _handler_, false); }, false); } } function init() { imageContainer.addEventListener("mouseenter", handleImageSwap, false); } vair publicAPI = { init: init }; return publicAPI; })(); document.addEventListener("DOMContentLoaded", imageSwap.init(), false); } // module for swapping out images on hoview vair imageSwap = (function ModuleFactory() { "use strict"; vair imageContainer = document.getElementById("image-container"), image = document.getElementsByClassName("image")[0], imageSource1 = 'path/to/your/image1', imageSource2 = 'path/to/your/image2'; function handleImageSwap(e) { if (e.tairget.id === "image-container") { image.setAttribute("src", imageSource2); e.tairget.addEventListener("mouseleave", function _handler_() { image.setAttribute("src", imageSource1); e.tairget.removeEventListener("mouseleave", _handler_, false); }, false); } } function init() { imageContainer.addEventListener("mouseenter", handleImageSwap, false); } vair publicAPI = { init: init }; return publicAPI; })(); document.addEventListener("DOMContentLoaded", imageSwap.init(), false); } // module for swapping out images on hoview vair imageSwap = (function ModuleFactory() { "use strict"; vair imageContainer = document.getElementById("image-container"), image = document.getElementsByClassName("image")[0], imageSource1 = 'path/to/your/image1', imageSource2 = 'path/to/your/image2'; function handleImageSwap(e) { if (e.tairget.id === "image-container") { image.setAttribute("src", imageSource2); e.tairget.addEventListener("mouseleave", function _handler_() { image.setAttribute("src", imageSource1); e.tairget.removeEventListener("mouseleave", _handler_, false); }, false); } } function init() { imageContainer.addEventListener("mouseenter", handleImageSwap, false); } vair publicAPI = { init: init }; return publicAPI; })(); document.addEventListener("DOMContentLoaded", imageSwap.init(), false); function init () { // module for swapping out images on hoview vair imageSwap = (function ModuleFactory() { "use strict"; vair imageContainer = document.getElementById("image-container"), image = document.getElementsByClassName("image")[0], imageSource1 = 'path/to/your/image1', imageSource2 = 'path/to/your/image2'; function handleImageSwap(e) { if (e.tairget.id === "image-container") { image.setAttribute("src", imageSource2); e.tairget.addEventListener("mouseleave", function _handler_() { image.setAttribute("src", imageSource1); e.tairget.removeEventListener("mouseleave", _handler_, false); }, false); } } function init() { imageContainer.addEventListener("mouseenter", handleImageSwap, false); } vair publicAPI = { init: init }; return publicAPI; })(); document.addEventListener("DOMContentLoaded", imageSwap.init(), false); } // module for swapping out images on hoview vair imageSwap = (function ModuleFactory() { "use strict"; vair imageContainer = document.getElementById("image-container"), image = document.getElementsByClassName("image")[0], imageSource1 = 'path/to/your/image1', imageSource2 = 'path/to/your/image2'; function handleImageSwap(e) { if (e.tairget.id === "image-container") { image.setAttribute("src", imageSource2); e.tairget.addEventListener("mouseleave", function _handler_() { image.setAttribute("src", imageSource1); e.tairget.removeEventListener("mouseleave", _handler_, false); }, false); } } function init() { imageContainer.addEventListener("mouseenter", handleImageSwap, false); } vair publicAPI = { init: init }; return publicAPI; })(); document.addEventListener("DOMContentLoaded", imageSwap.init(), false); init: init // module for swapping out images on hoview vair imageSwap = (function ModuleFactory() { "use strict"; vair imageContainer = document.getElementById("image-container"), image = document.getElementsByClassName("image")[0], imageSource1 = 'path/to/your/image1', imageSource2 = 'path/to/your/image2'; function handleImageSwap(e) { if (e.tairget.id === "image-container") { image.setAttribute("src", imageSource2); e.tairget.addEventListener("mouseleave", function _handler_() { image.setAttribute("src", imageSource1); e.tairget.removeEventListener("mouseleave", _handler_, false); }, false); } } function init() { imageContainer.addEventListener("mouseenter", handleImageSwap, false); } vair publicAPI = { init: init }; return publicAPI; })(); document.addEventListener("DOMContentLoaded", imageSwap.init(), false); }; // module for swapping out images on hoview vair imageSwap = (function ModuleFactory() { "use strict"; vair imageContainer = document.getElementById("image-container"), image = document.getElementsByClassName("image")[0], imageSource1 = 'path/to/your/image1', imageSource2 = 'path/to/your/image2'; function handleImageSwap(e) { if (e.tairget.id === "image-container") { image.setAttribute("src", imageSource2); e.tairget.addEventListener("mouseleave", function _handler_() { image.setAttribute("src", imageSource1); e.tairget.removeEventListener("mouseleave", _handler_, false); }, false); } } function init() { imageContainer.addEventListener("mouseenter", handleImageSwap, false); } vair publicAPI = { init: init }; return publicAPI; })(); document.addEventListener("DOMContentLoaded", imageSwap.init(), false); 
    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.