window.event.clientX 屏幕下拉移位...

frenzy917 2008-02-27 05:09:36
我用这个window.event.clientX读取鼠标的位置显示提示框
可是当屏幕下拉的时候就会出现移位,应该怎麽解决??
我的js代码如下
function showad(id) {
var addiv = document.getElementById(id);
var x = window.event.clientX;
var y = window.event.clientY;

addiv.className="showad";
addiv.style.top = y+ "px";
addiv.style.left = x+ "px";
}
css样式如下
showad{display:block;position:absolute;z-index:9;width:300px;}
...全文
214 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
2008-02-27
  • 打赏
  • 举报
回复
FF下用的是pageX
frenzy917 2008-02-27
  • 打赏
  • 举报
回复
firefox下搞定
function showad(e,id)
{
var addiv = document.getElementById(id);
e=e||event;
var x = e.clientX;
var y = e.clientY+(document.body.scrollTop?document.body.scrollTop:document.documentElement.scrollTop) ;
addiv.className="showad";
addiv.style.top = y+ "px";
addiv.style.left = x+ "px";
}
frenzy917 2008-02-27
  • 打赏
  • 举报
回复
ie下搞定..
var y = window.event.clientY +document.body.scrollTop
2008-02-27
  • 打赏
  • 举报
回复
加上document.documentElement.scrollTop试试
frenzy917 2008-02-27
  • 打赏
  • 举报
回复
不是不想给...我没分了....

我现在如果窗口不动的话能显示正确,但是窗口下拉(就是页面比较长,右面有拖动条,下拉之后)之后显示就偏上了,要怎么解决?
2008-02-27
  • 打赏
  • 举报
回复
这么小气,一分都不给 O_O

我的看法:
要用到3个事件
1.onmousedown
记录x, y坐标,设置标记,鼠标已按下, 捕获鼠标
2.onmousemove
和记录的x,y比较,移动层. 更新x,y坐标
3.onmouseup
设置标记,鼠标已放开,释放鼠标,

我写了个窗口类,可以移动,兼容IE6.0以上和FF,不过在家里的电脑的 - -!
lsc1202001 2008-02-27
  • 打赏
  • 举报
回复
var x = window.event.x;
var y = window.event.y;

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧