为啥设置了pageX和pageY创建的提示框不会随着鼠标移动
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥设置了pageX和pageY创建的提示框不会随着鼠标移动相关的知识,希望对你有一定的参考价值。
<a href="#" class="tooltip" title="这是我的超链接提示1">提示1</a>
<a href="#" class="tooltip" title="这是我的超链接提示2">提示2</a>
<a href="#" title="这是自带提示1">自带提示1</a>
<a href="#" title="这是自带提示2">自带提示2</a>
<script type="text/javascript">
$(function()
var x=20;
var y=40;
$("a.tooltip").mouseover(function(e)
this.myTitle=this.title;
this.title='';
var tooltip="<div id='tooltip'>"+this.myTitle+"</div>";
$("body").append(tooltip);
$("#tooltip").css(
"top":(e.pageY+y)+"px",
"left":(e.pageX+x)+"px"
).show("fast");
).mouseout(function()
this.title=this.myTitle;
$("#tooltip").remove();
).mousemove(function(e)
$("#tooltip").css(
"top":(e.pageY+y)+"px",
"left":(e.pageX+x)+"px"
);
);
)
</script>
给你的 #tooltip,设置 position:fixed; 样式就可以了
var tooltip="<div id='tooltip' style='position:fixed;'>"+this.myTitle+"</div>";本回答被提问者采纳 参考技术B 是clientX和clientY追问我已经搞明白了,不是这个问题,jquery就是用pageY,是我没有为新建的标签添加position样式
获取鼠标的位置
获取鼠标位置
1.PageX/PageX:鼠标在页面上的位置,从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化
2.clientX/clientY:鼠标在页面上可视区域的位置,从浏览器可视区域左上角开始,即是以浏览器滑动条此刻的滑动到的位置为参考点,随滑动条移动 而变化.
可是悲剧的是,PageX只有FF特有,IE这个悲剧没有啊T_T,所以大牛们想出了一个办法
PageY=clientY+scrollTop-clientTop;(只讨论Y轴,X轴同理,下同)
3.screenX/screenY:鼠标在屏幕上的位置,从屏幕左上角开始(w3c标准)
4.offsetX/offsetY:IE特有,鼠标相比较于触发事件的元素的位置,以元素盒子模型的内容区域的左上角为参考点,如果有boder,可能出现负值
5.
layerX/layerY:FF特有,鼠标相比较于当前坐标系的位置,即如果触发元素没有设置绝对定位或相对定位,以页面为参考点,如果有,将改变参考坐标系,从触发元素盒子模型的border区域的左上角为参考点也就是当触发元素设置了相对或者绝对定位后,layerX和offsetX就幸福地生活在一起^-^,几乎相等,唯一不同就是一个从border为参考点,一个以内容为参考点
chrome和safari一条龙通杀!完全支持所有属性.其中(offsetX和layerX都是以border为参考点)
下面这个是获取相对于屏幕的坐标
document.onmousemove=function(e){e=e? e:window.event;document.writeln("X:"+e.screenX+"Y:"+e.screenY);}
以上是关于为啥设置了pageX和pageY创建的提示框不会随着鼠标移动的主要内容,如果未能解决你的问题,请参考以下文章
jQuery(滑动与触摸)pageX 和 pageY 不断返回 0