lostinet及各位高手请进,我很想很想读懂她,但我又不懂,急,在线等,你要说分不够,我再加,

xizi2008 2002-09-11 03:42:04
lostinet及各位高手请进,我很想很想读懂她,但我又不懂,急,在线等,你要说分不够,我再加,谁能一句一句的挨着加上注释,谢了,各位高手,
//*************************************//
<body>
<table>
<tr><td>daf</td><td>
<div id=move1 style="position:absolute;width:200px;height:200px;left:44px;top:55px;background-color:#e0e2e0">

<div id=move2 style="position:relative;width:100px;height:100px;left:30px;top:30px;background-color:blue">
<div id=move3 style="width:50px;height:50px;left:15px;top:15px;background-color:red">
</div>
</div>
</div>
</body>

<script>
MakeMovable(move1);
MakeMovable(move2);
MakeMovable(move3);
function MakeMovable(element)
{
if(element.runtimeStyle.position==""||element.runtimeStyle.position=="static")
element.runtimeStyle.position="absolute";
element.attachEvent("onmousedown",onmousedown);
element.attachEvent("onmouseup",onmouseup);
element.attachEvent("oncontextmenu",oncontextmenu);
element.attachEvent("onlosecapture",onlosecapture);
var uid=element.uniqueID;
element=null;
var moving=false;
var precursor="";

var downpos={offsetX:0,offsetY:0};
var offset={X:"offsetLeft",Y:"offsetTop"}

function GetEventOffset(element,event,xy)
{
return event["client"+xy];
}
function GetOffset(element,xy)
{
var v=0;
do
{
v+=element[offset[xy]];
}while(element=element.offsetParent)
return v;
}
function onmousemove(event)
{
var element=document.getElementById(uid);
if(event.srcElement==element)
{
element.runtimeStyle.pixelLeft=
parseInt(element.runtimeStyle.pixelLeft)+event.offsetX-downpos.offsetX;
element.runtimeStyle.pixelTop =
parseInt(element.runtimeStyle.pixelTop )+event.offsetY-downpos.offsetY;
}
else
{
element.runtimeStyle.pixelLeft=
parseInt(element.runtimeStyle.pixelLeft)
+GetEventOffset(event.srcElement,event,"X")
-GetOffset(element,"X")-downpos.offsetX;
element.runtimeStyle.pixelTop =
parseInt(element.runtimeStyle.pixelTop )
+GetEventOffset(event.srcElement,event,"Y")
-GetOffset(element,"Y")-downpos.offsetY;
}
}
function onmousedown(event)
{
if(moving)
{
event.cancelBubble=true;
return event.returnValue=false;
}
if(event.button!=1)return;
var element=document.getElementById(uid);
moving=true;
precursor=element.currentStyle.cursor
element.attachEvent("onmousemove",onmousemove);
element.runtimeStyle.cursor="move";
element.setCapture(true);

downpos.offsetX=event.offsetX;
downpos.offsetY=event.offsetY;

event.cancelBubble=true;
return event.returnValue=false;
}
function onmouseup(event)
{
if(moving&&event.button!=1)
{
event.cancelBubble=true;
return event.returnValue=false;;
}
var element=document.getElementById(uid);
if(moving==false)return;
element.detachEvent("onmousemove",onmousemove);
element.runtimeStyle.cursor=precursor;
element.releaseCapture(true);
moving=false;
}
function oncontextmenu()
{
if(moving)
{
event.cancelBubble=true;
return event.returnValue=false;;
}
}
function onlosecapture(event)
{
var element=document.getElementById(uid);
element.detachEvent("onmousemove",onmousemove);
element.runtimeStyle.cursor=precursor;
moving=false;
}
}
</script>
//**************************************//
...全文
31 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lostinet 2002-09-11
  • 打赏
  • 举报
回复
http://www.lostinet.com/public/makeMovable.html
xizi2008 2002-09-11
  • 打赏
  • 举报
回复
waiting......
Lostinet 2002-09-11
  • 打赏
  • 举报
回复
我现在去注释。。完了再发一帖
孟子E章 2002-09-11
  • 打赏
  • 举报
回复
下载
inet.chm
里面有详细的

http://www.csdn.net/Expert/TopicView1.asp?id=1004808
qiushuiwuhen 2002-09-11
  • 打赏
  • 举报
回复
他写的还是叫他给你讲吧,解铃还需系令人,呵呵

只简要说一下不常用的,其他应该就没什么难懂的

attachEvent映射事件方法处理,第一个参数为事件,第二个参数为处理方法
.uniqueID 产生该控件在这文档document中唯一标识
downpos{offsetX:0,offsetY:0}; 哈希表或集合,可通过downpos.offsetX调用
runtimeStyle即时样式,和属性style同时作用当时样式,但不修改属性style
detachEvent和attachEvent相反,即取消事件和方法的联系
Lostinet 2002-09-11
  • 打赏
  • 举报
回复
你上面的是老的代码也。。。

上MSDN找参考
先把下面的东西搞定

position

offsetParent
offsetLeft
offsetTop
offsetX
offsetY
clientX
clientY

attachEvent
detachEvent
getElementById
setCapture
releaseCapture
xizi2008 2002-09-11
  • 打赏
  • 举报
回复
一句一句的挨着加上注释,谢了,各位高手,
51windows 2002-09-11
  • 打赏
  • 举报
回复
拖动图层的!

MakeMovable(move1);
MakeMovable(move2);
MakeMovable(move3);
使层可以拖动!

........

读懂她,应该有点html 与javascript知识!
SqlScope 4.0By Lostinet.comISqlScope的模型和实现代码。附加例子。优点: 自动配释放数据库连接 执行数据库操作的代码不需要明确知道数据库连接的时间和地点,所以代码更容易编写和管理。 支持显式事务的多层嵌套。这样可以再任何时候建立回滚点和进行任何形式的提交或回滚。 使用using来对连接,查询,和事务进行管理,代码简洁明了。 支持多种常用的数据库访问的Method,使数据库操作代码更短。 通过把ISqlScope放到较大的范围内,可以实现该范围内数据连接的高效利用。 { 例如: using(ss.EnterQuery()) { DataGrid1.DataBind(); } 这个时候, DataGrid1_OnItemDataBound...里 { using(ss.EnterQuery())//数据库连接已打开,继续使用。 { //..进行查询和对DataGridItem进行操作 } } }对例子进行测试:如果您的电脑上启动了Microsoft SqlServer 2000并且启用了Windows验证, 那么这个例子就可以直接编译然后执行了。不能运行的情况自己解决关于ISqlScope.CreateXXX,ISqlScope.ExecuteXXX的参数都是string cmdtext,params object[] sqlparamscmdtext是基本的sql语句。sqlparams是附加的用于SQL查询操作的参数。参数是可变长的,原理就像string.Format(str,a0,a1..)一样。可以(cmdtext,p0,p1,p2..)这样调用,也可以直接传递object[]数组。详细请看C#的params关键字附加的参数按 @p0,@p1,@p2,...等名称输入到SqlCommand.Parameters中。有兴趣的看SqlScopeImpl.CreateCommand方法的代码如果附加参数为null,那么将以DBNull.Value插入到SqlParameter中。提示:在Main中选择例子来运行。最好先打开SqlServer事件探查器来监视程序对SqlServer的操作活动。对于ss.ExecuteXXX(@"SELECT *FROM EmployeesWhere EmployeeID=@p0" ,cid);这样的写法,最好为字符串的显示改变背景颜色。操作:VS.Net-工具-选项-环境-字体和颜色-显示项-字符串(最下面) 背景色推荐改为浅灰色例子:A,B,C是基本的数据库操作D讲解了ExecuteReader,CreateAdapter,CreateCommand的用法。E是事务的初步概念。由E开始,深化地讲解一下ISqlScope对事务的操作的简便C#语法。这个是和dotnet的Exception体制结合的很深的。如果没有Exception的概念。建议先去看看dotnet中对于Exception的介绍。所提供的例子不够复杂。如果有更高要求的应用,可以写信联系我。 lostinet@lostinet.com 2003-5-21 主要的实现由SqlScopeImpl移动到Connection中去了。H,I是两个关于新特征的例子

87,993

社区成员

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

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