求大神指点火狐下的一个问题。

张运领 2012-11-25 11:00:12
<html>
<head>
<style>
a{
position:relative;
}
</style>
<script type="text/javascript">
mouseover=true
function coordinates(event){
if (!moveMe){
alert("return");
return;
}
var event = event || window.event;
var eventId = event.srcElement?event.srcElement.id : event.target.id;
if (eventId =="moveMe"){
mouseover=true;
pleft=document.getElementById('moveMe').style.pixelLeft;
ptop=document.getElementById('moveMe').style.pixelTop;
xcoor=event.clientX;
ycoor=event.clientY;
document.onmousemove=moveImage
}
}

function moveImage(event){
var event = event || window.event;
//alert(mouseover+"---"+event.button);
var eventButton = event.target?event.button:event.button-1;
//因为鼠标事件在不同浏览器下,取值是不同的,自己可以去查查看。
if (mouseover&&eventButton == 0){
document.getElementById('moveMe').style.pixelLeft=pleft+event.clientX-xcoor; document.getElementById('moveMe').style.pixelTop=ptop+event.clientY-ycoor;
return false;
}
}

function mouseup(){
mouseover=false;
}
document.onmouseup=mouseup;
document.onmousedown=coordinates;

</script>
</head>
<body>
<a id="moveMe" href = "http://www.baidu.com" >百度</a>
</body>
</html>



document.getElementById('moveMe').style.pixelLeft
就是这个东西,在火狐下无法取到值,也没有办法赋值。
哪位大神指点一下啊。
...全文
893 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
张运领 2012-11-26
  • 打赏
  • 举报
回复
引用 2 楼 derekrose 的回复:
pixelLeft这个东西firefox好像不行的,用left就好了啊
用这个也只是在赋值时可用,取值得出的结果是NaN,还不行。。。 还有个情况,在楼上写了一下,帮忙给看一下呗,谢谢啦
张运领 2012-11-26
  • 打赏
  • 举报
回复
引用 1 楼 hch126163 的回复:
赋值: document.getElementById('moveMe').style.left= leftValue +"px"; 取值: var leftValue = parseInt(document.getElementById('moveMe').style.left,10);
赋值是可以用的,但是取值不对,取不到值,我这边取值显示的内容为NaN,我用的火狐的版本是13.0.1 同时,我用笨方法做了一下,但是还有个问题,是在火狐下,在拖动之后,第一次放开鼠标左键时不会被触发,点右键的话,会触发的。就是onmouseup事件没有被执行。麻烦帮忙给看下情况呗,谢谢啦。
<html>
<head>
<style>
a{
position:relative;
}
</style>
<script type="text/javascript">
mouseover=true
function coordinates(event){
	if (!moveMe){
		alert("return");
		return;
	}
	var event = event || window.event;
	var eventId = event.srcElement?event.srcElement.id : event.target.id;
	if (eventId =="moveMe"){
		mouseover=true;
		pleft=document.getElementById('moveMe').style.pixelLeft;
		ptop=document.getElementById('moveMe').style.pixelTop;
		if(!pleft){
			pleft = event.pageX - 2;
		}
		if(!ptop){
			ptop = event.pageY - 2;
		}
		xcoor=event.clientX;
		ycoor=event.clientY;
		document.onmousemove=moveImage
	}
}

function moveImage(event){
	var event = event || window.event;
	var eventButton = event.target?event.button:event.button-1;
	//因为鼠标事件在不同浏览器下,取值是不同的,自己可以去查查看。
	if (mouseover&&eventButton == 0){
		document.getElementById('moveMe').style.left=pleft+event.clientX-xcoor + "px";    document.getElementById('moveMe').style.top=ptop+event.clientY-ycoor + "px";
		return false;
	}
}

function mouseup(){
	alert("up");//火狐下,这个在拖动之后,第一次放开鼠标左键时不会被触发,有人知道情况吗?
	mouseover=false;
}
document.onmouseup=mouseup;
document.onmousedown=coordinates;

</script>
</head>
<body>
<a  id="moveMe" href = "http://www.baidu.com" >百度</a>
</body>
</html>
derekrose 2012-11-26
  • 打赏
  • 举报
回复
pixelLeft这个东西firefox好像不行的,用left就好了啊
hch126163 2012-11-26
  • 打赏
  • 举报
回复
赋值: document.getElementById('moveMe').style.left= leftValue +"px"; 取值: var leftValue = parseInt(document.getElementById('moveMe').style.left,10);

87,910

社区成员

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

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