用Javascript实现Agent(网页精灵)(转)

一直觉得Agent是用来做网站导航和帮助的不错选择,可惜MS Agent只有IE支持,而且好像加载速度不是很快,分析了一下觉得用Javascript绝对可以做到,以前对Javascript都是抄来抄去,趁此机会也彻底学一学。OK,Let's Begin

Javascript既然是基于对象的语言,那么大体上我们也可以按照OO的思路来设计自己的Agent

我们希望客户端简单调用一下就OK了,应当是如下的形式。





那么首先我们就来创建一个agent.js,js创建一个对象很简单只需要提供一个构造函数就OK了

function Agent()
{
this.imgAgent = "images/agent.gif";
}

那么,接下来的任务就是让这个对象拥有一个run方法,这个方法应当仅仅就是输出最后拼凑好的html,我们先简单实现一下。

Agent.prototype.run=function()
{
var agentHtml = " >%20agentHtml%20+=%20 agentHtml += " style="position:absolute;left:50;top:50;cursor:move"";
agentHtml += " onselectstart="return false"";
agentHtml += " οnmοusedοwn="mousedown(this)"";
agentHtml += " οnmοuseup="mouseup()"";
agentHtml += " οnmοusemοve="mousemove()"";
agentHtml += ">";
return document.write(agentHtml);
}

从上面代码可以看出,我们实现的第一个精灵效果就是可以拖动精灵到界面任意一个地方,只需实现一下onmousedown,onmousemove,onmousemove三个事件即可

var currentMoveObj = null; //当前拖动对象

this.setImage=function(img)
{
imgAgent = img;
}
function dblclick(obj)
{
obj.src= "images/chaosai.gif";
}
function mousedown(obj)
{
currentMoveObj = obj; //当对象被按下时,记录该对象
//查了一下资料setCapture的意思是:
//捕捉触发事件时的焦点对象并使鼠标焦点始终绑定该对象。
//很关键不然灵敏度会很低
currentMoveObj.setCapture()
relLeft = event.x - currentMoveObj.style.pixelLeft;
relTop = event.y - currentMoveObj.style.pixelTop;
}
function mouseup()
{
if(currentMoveObj!=null)
{
currentMoveObj.releaseCapture();
currentMoveObj=null;
}
}
function mousemove()
{
if(currentMoveObj != null)
{
currentMoveObj.style.pixelLeft=event.x-relLeft;
currentMoveObj.style.pixelTop=event.y-relTop;
}
}[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9650775/viewspace-922712/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9650775/viewspace-922712/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值