如何获取鼠标的位置,然后在其旁边放置一个HTML元素?
例如,如果我有一个<textarea>
并且我希望鼠标悬停在其上时显示工具栏,我该怎么做?
答案 0 :(得分:5)
您可以在mousemove函数中为textarea获取event.pageX
和event.pageY
的x和y坐标。
$('textarea#myText').mouseenter(function(event) {
$('#toolbar').show();
});
$('textarea#myText').mousemove(function(event) {
var left = event.pageX + 20;
var top = event.pageY + 20;
$('#toolbar').css('left', left).css('top', top);
});
$('textarea#myText').mouseleave(function(event) {
$('#toolbar').hide();
});
答案 1 :(得分:2)
答案可以在这里找到: HTML-Tooltip position relative to mouse pointer
请查看此jsFiddle了解详情。
var tooltips = document.querySelectorAll('.tooltip span');
window.onmousemove = function (e) {
var x = (e.clientX + 20) + 'px',
y = (e.clientY + 20) + 'px';
for (var i = 0; i < tooltips.length; i++) {
tooltips[i].style.top = y;
tooltips[i].style.left = x;
}
};
答案 2 :(得分:1)
这个怎么样?
yourText = document.getElementById('yourText');
yourToolbar = document.getElementById('yourToolbar');
yourText.addEventListener('mouseenter',function(e){
setTimeout(function(){
yourToolbar.style.opacity=opacity_hi;
//this CSS3 renders faster:
yourToolbar.style.transform='translate('+(1000+mx-10)+'px,'+(1000+my+10)+'px)';
yourToolbar.style.webkitTransform='translate('+(1000+mx-10)+'px,'+(1000+my+10)+'px)';
},hide_delay/2);
//...
});
yourText.addEventListener('mousemove',function(e){
mx=e.pageX;
my=e.pageY;
//...
});
请参阅上面的链接。