2017-01-13 2 views
-3

要素が2秒以上ホバーされているときにトゥイップを表示したい。どうしたらいいですか?純粋なjavascriptの要素をどれくらい長くホバーするかを確認するには?

+1

、あなたが入力した時間を選んで、あなたが終了する時間を選択し、違いを取りますか? –

+0

あなたのコードを見せてください。あなたは今まで何を試みたのですか? –

+0

要素が2秒以上ホバリングされたときにトゥイップを表示したい。どうしたらいいですか? – user3552391

答えて

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

これは私にとってはうまくいきません。マウスが2秒以上要素の上にある場合、ツールチップを表示したいです。 mouseleaveイベントが発生したときではありません。 – user3552391

+0

@ user3552391次にコードを使用してニーズに合わせて調整します – Weedoze

0

あなたはonmouseenter="fn()"onmouseout="fn()"で入力した時間と終了時間を確認することができます。これを行う簡単な方法があり、時間もミリ秒単位で表示されます!

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

あなたはonmouseover属性とイベントONMOUSEOUTたsetTimeout()メソッドを使用することができます。

ツールチップのCSS: http://www.w3schools.com/howto/howto_css_tooltip.asp

setTimeoutメソッド: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]); 
    } 
} 
関連する問題