2017-01-13 1 views
-3

Ich möchte eine Tototip zeigen, wenn ein Element für 2 Sekunden oder mehr schwebt. Wie kann ich es tun?Wie überprüft man, wie lange man ein Element in reinem Javascript schwebt?

+1

holen die Zeit, wenn Sie eingeben, holen die Zeit, wenn Sie Ausfahrt, dann den Unterschied machen? –

+0

Zeig mir deinen Code. Was hast du bis jetzt versucht? –

+0

Ich möchte eine Tototip zeigen, wenn ein Element für 2 Sekunden oder mehr schwebt. Wie kann ich es tun? – user3552391

Antwort

1

var startTime, endTime; 
 

 

 
function handlerIn() { 
 
    startTime = new Date(); 
 
} 
 

 
function handlerOut() { 
 
    endTime = new Date(); 
 
    var timeDiff = endTime - startTime; //in ms 
 
    // strip the ms 
 
    timeDiff /= 1000; 
 

 
    // get seconds 
 
    var seconds = Math.round(timeDiff % 60); 
 
    console.log("hover during " + seconds + " sec"); 
 
}
.hover { 
 
    background-color: red; 
 
    width: 100px; 
 
    height: 100px; 
 
}
<div class="hover" onmouseenter="handlerIn()" onmouseleave="handlerOut()">HOVER ME</div> 
 

 
<div id="seconds"></div>

+0

Dies funktioniert nicht für mich, da ich den Tooltip anzeigen möchte, wenn die Maus länger als 2 Sekunden über einem Element steht. Nicht wenn das mouseleave Ereignis ausgelöst wird. – user3552391

+0

@ user3552391 Dann einfach verwenden, um es zu kodieren und an Ihre Bedürfnisse anzupassen – Weedoze

0

Sie können die Zeit und Ausgangszeit mit onmouseenter="fn()" und onmouseout="fn()" eingeben überprüfen. Hier ist ein einfacher Weg, und es zeigt auch die Zeit in Millisekunden!

var time = 0; 
 
var hover = 0; 
 
var out = 0; 
 

 
function getInTime() { 
 
    hover = Date.now(); 
 
} 
 

 
function getOutTime() { 
 
    out = Date.now(); 
 
    time = out-hover; 
 
    document.getElementById('time').innerHTML = " Show hover time: " + time + 'ms'; 
 
}
<button onmouseout="getOutTime()" onmouseenter="getInTime()" >Hover Here</button> 
 
<br /><br /> 
 
<button id="time">Hover Time</button>

1

Sie können setTimeout() -Methode mit Onmouseover und onmouseout Ereignisse verwenden.

Tooltip css: http://www.w3schools.com/howto/howto_css_tooltip.asp

SetTimeout Methode: http://www.w3schools.com/jsref/met_win_settimeout.asp

<div id="example" class="tooltip" onmouseover="start()" onmouseout="stop()">example text</div> 
let t, hoverTime=2000; 

function start(){ 
    t = setTimeout('showTooltip()', hoverTime); 
} 

function showTooltip(){ 
    let node = document.createElement("span"); 
    let textnode = document.createTextNode("Tooltip text"); 
    node.className='tooltiptext'; 
    node.appendChild(textnode); 
    document.getElementById("example").appendChild(node); 
} 

function stop(){ 
    clearTimeout(t); 
    if(document.getElementById("example").childNodes[1]){ 
     document.getElementById("example").removeChild(document.getElementById("example").childNodes[1]); 
    } 
} 
Verwandte Themen