2017-07-20 13 views
1

Wie kann ich diesen Codeblock dazu bringen, die Position des Tooltip-Elements innerhalb der Browser-Ränder und Popup in anderer Richtung festzulegen, wenn nicht genügend Platz vorhanden ist, um es an der aktuellen Position anzuzeigen.Position des jquery-Elements relativ zum Mauszeiger

var etichetaSpan = document.getElementById('tooltip-span'); 

window.onmousemove = function (e) { 
    var x = e.clientX, 
    y = e.clientY; 
    tooltipSpan.style.top = (y + 20) + 'px'; 
    tooltipSpan.style.left = (x + 20) + 'px'; 
}; 

Antwort

0

Hier ist eine funktionierende Geige für links und rechts. Aber Sie können die gleiche Technik für oben/unten anwenden.

Ich berechne die maximale Position links Wert möglich durch Abrufen der Dokumentbreite und Subtrahieren der Breite des Tooltips, um die Variable max_value zu erhalten.

Werfen Sie einen Blick hier:

var etichetaSpan = document.getElementById('tooltip-span'); 
 

 
var width = document.body.clientWidth; 
 
var tooltip_width = etichetaSpan.clientWidth; 
 
var max_value = width - tooltip_width; 
 

 
window.addEventListener('resize', function(){ 
 
\t width = document.body.clientWidth; 
 
    max_value = width - tooltip_width; 
 
}); 
 

 
window.onmousemove = function (e) { 
 
    var x = e.clientX, 
 
    y = e.clientY; 
 
    etichetaSpan.style.top = (y + 20) + 'px'; 
 
    if(x + 20 < max_value){ 
 
    \t etichetaSpan.style.left = (x + 20) + 'px'; 
 
    } else { 
 
    \t etichetaSpan.style.left = (x - (20 + tooltip_width)) + 'px'; 
 
    } 
 
};
#tooltip-span{ 
 
    position:absolute; 
 
}
<span id="tooltip-span">Tooltip!</span>

+0

das ist, was ich brauche, es zu benutzen, aber es scheint es für meinen Fall nicht funktioniert https://jsfiddle.net/6h6bn1yL/ –

+0

Was ist falsch mit dieser Geige? Für mich geht das? – hallleron

+0

.... meine schlechte ... ich bin auf Chrom und es funktioniert nicht, aber auf Firefox funktioniert es ... irgendwelche Hinweise dazu? –

Verwandte Themen