| 育炜's profile有为PhotosBlogLists | Help |
|
|
March 09 这个标题啊一直觉得这个blog比较失败的地方就是必须让人写标题。还在旁边明明白白写着必填。
好久没有更新过这个blog。自从微软开始跟随facebook的世界潮流时,我就越来越用不懂这个Space。
周围的诱惑和选择越多,就越是随波逐流了。原本告诫自己千万要知道什么时候要做什么事。结果发现不知不觉就着了生活的道了。啥叫人在江湖,身不由己。一句老掉牙的话还是可以拿出来推卸责任。思想退步了,觉悟降低了,眼界狭隘了,啥都觉得没意思了。
坚持啊,不能忘记革命传统。
October 15 什么是教育[转]在一封邮件里面看到的,找不到出处了。 "生命真是美极了,它不是我们制造出的这些丑恶。唯独当你对所有事物革新之后,才能欣赏到它的丰富、深度及可爱。革新组织化的宗教、传统和现今败坏的 September 16 [转]AGDC: Blizzard's Morhaime On Overcoming 'Myth' With WoW来源地址:http://www.gamasutra.com/php-bin/news_index.php?story=15369 Think every aspect of your game play has to be customized for regional players? Blizzard disagrees, and in his keynote for the Austin GDC, president Mike Morhaime discussed this and other lessons learned throughout the company's release history.
中文来源:http://www.it.com.cn/f/games/079/7/474276.htm 【暴雪新作推荐】:《魔兽世界:巫妖王之怒》专区 《星际争霸2》游戏资料专区 暴雪创办人兼总裁Michael Morhaime在GDC Austin上发表了演讲,谈论他从《魔兽世界》和其他暴雪游戏中总结出来的十条经验。 May 22 从一个精致得角度看过去每天走过的路,搭过的车,吃过的饭,以及见过的保安都是一样的。这,被很多人称之为习惯。 许久以来,我们过于依赖这样的习惯,并且认为别人也是这样。因为我们成了人群中习惯着每一天的大部分的人。 我们无法让自己灵魂深处的信仰得见光明。时间逝去的时候,给所有曾经的闪光积上厚厚的尘。 希望走过的曲线可以从更精致的角度记录下什么。 May 21 乱中午又和一个要离职的同事吃了饭,说到了当下比较混沌的状态。 也不知道现在正在做什么,做的事情有什么意义。以后又该做什么。 一切也没个头,没个尾。 好像搭上了一班车,就这么跟着,不知道哪站再下去搭另外一班车。 May 07 寄托和信仰一个长假就这么快过去了,似乎每天都没闲着。只要你愿意,永远都有很多事情等着你。 有开心的,有不开心的,有希望发生的,也有不希望的。不过这些事情总是没有选择的追着就来了。躲不掉。 这么着挺好,挺有活着的感觉。忙啊忙的,瞎忙。 今天是长假最后一天,眼看一个假期就过去了。 距离我来公司就快半年了,不知道什么时候开始时间过的飞快。超出我的想象。 和我刚来的时候,似乎没有什么太大的变化。一切如常。 原来的朋友们也忙着各自的事业和生活,和半年前一样,大家都很平淡的平淡的生活。 我看到他们的平淡,却形容不出来。那种感觉,恐怕我很难体会。不是因为我多了不起,多忙,是因为我早丢掉了我的寄托和信仰。 March 06 关于产品设计互联网产品的特点 互联网产品和软件产品不同,相比来说,互联网产品需要更快的开发速度,更灵活的结构,更好的拓展性,更快的更新速度。互联网产品,往往不仅限于功能的实现。而一个成功的产品,除了和用户的交互,功能的强大,便捷,容错能力强之外,文化和氛围的形成,建立,也会对产品起到异常重要的作用。而在产品规模到达一个层面的时候,通常需要对平台本身结构,功能,技术,体验等方面的突破,以至达到概念的突破,才能让产品再次迸发出生命力和竞争力。
什么时候需要产品设计 任何时候产品都需要不断的更迭和完善。但是基于互联网产品的特点,在产品新推出,和平台到达一个规模瓶颈的时候,尤其需要通过设计来提高产品的竞争力,从而迅速占领市场。产品前期的结构是否合理和灵活,也决定了产品后期的改造,平台整合,功能和资源输出是否能快速小代价的执行。
什么人应该懂得产品设计 产品设计人员(产品的功能设计人员)无疑需要精通产品设计。其实,一个产品生产团队的所有人,都应该或多或少懂得产品设计,至少有产品设计的理念。一个再好的功能设计师,也没办法把所有执行层面的产品细节设计到位。而且也没有充足的时间让大家这么作。那么遇到产品执行细节的时候,必定需要各执行层的人员在专业技能之外,用产品的理念进行执行。 例子: 比如yahoo美国首页的更多服务菜单,这个菜单通过一次点击从左边移出。产品人员可以设计这个菜单的通过什么动作激活出现,从什么地方出现,什么时候消失,但是没办法设计这个菜单移出的速度。是匀速移出,加速移出还是减速移出。移出到制定位置的时候是否要做急停或者抖动效果。 上述的这些是需要动画设计师和工程师合作来完成的,不仅仅是产品人员。 产品人员在设计流程的时候,也可能不甚了解某个新特效或者交互形式的应用,会对现有的开发有多大程度的影响。这时候,产品人员需要和相关的技术工程师沟通来确定具体的流程或者交互逻辑应该如何设计。 因此好的产品人员不一定在各个执行层面都是强手,但是好的产品人员一定要懂得如何和专业人员沟通,从而可行的好的产品方案。
产品设计都设计什么 产品设计绝不是单纯对功能的增减。往往出现的一个现象,是产品人员拿着功能列表的单子,和大家讨论哪些功能要,哪些不要,哪些一期做,哪些二期做。在时机不恰当的时候,就陷入了细节的泥潭,而忘记整体的目标。最后的产品就成了一个功能堆砌的场所,而很难表现出原本的主张。之前说过,很多的细节是需要和专业的执行人员协调沟通来执行的。产品人员一定要在整个过程中,可以看到大的产品目标和方向,不能让自己迷失。这个时候一定不能忘记目标用户群、平台优势、定位、资源。
关于用户心理模型和产品设计模型 产品的设计模型,其实我更愿意说产品实现模型。往往设计模型和实现模型是有差距的。而用户也往往没有按照我们预先设计的模型来使用产品。一个产品模型为用户提供了很多可能。产品人员也要通过最终用户的使用情况来判断产品的实现模型是否和用户的心理模型匹配。 用户使用产品的时候通常现如下: 需求目标->分解成若干任务->按照产品规则进行交互->对照心理预期验证执行结果 这个路径通常不是唯一的,也可能在交互的过程中,用户的早期需求目标就发生了改变。因此,条条大路通罗马。关键是不要总让用户在最后失望。
产品设计的依据 如何判断产品设计是否合格,是否达到了目标。产品的数据指标是足够客观的。但是也往往难以直接揭示问题。而且往往在产品发布之前,产品人员就需要取得足够的依据以便可以在验证团队的想法。 通常评审产品的方法有“焦点小组”和“用户可用性测试”。焦点小组的评审方式更崇尚经验和专业。而互联网产品的用户群体和文化往往变化较快,所以焦点小组的评审略显主观和狭窄。目前业界更为推崇“用户可用性测试”。 在可执行层面来说,部分主要功能的可用性测试,整体使用流程的可用性测试,还有在线调查的方式都可以在设计前期取得相当的数据依据。在产品上线后再辅以数据分析,进行产品的调整。
如何理解“我们”设计的平台 产品人员是否真的“懂”我们要设计的平台。对一个有交互氛围的产品平台进行设计把握,一定要真的懂得用户是如何使用类似的平台,用户如何使用我们的平台。这需要产品人员能充分的体验用户使用这些平台的感受,更要能预测出用户即将产生的需求。产品人员一定要大量的使用这些平台,要让自己先成为一个足够深度的“玩家”。 Colors Reference [Transshipment]source url:http://www.smashingmagazine.com/category/color
Sometimes we just don’t know what color to use. Sometimes we have no idea which colors to combine in order to create a beautiful color palette which would attract the visitors of our web-sites. That’s why we’ve decided to create some kind of visual reference cards or cheat sheets for the most popular colors of Web 2.0. Green, Purple, Black, White and other colors will be reviewed and analyzed in the next articles. Today’s Color is green. You can download it from our web-site. Please don’t refer to the image in your blog posts, but to this article. We’ve invested a lot of time creating it. So if you’d like to use it, at least appreciate our work. Please.
February 24 过年归来一个年又过去了,和去年一样,还是在火车上,睡的混天黑地之间接到无数的新年祝福短信。太多了,为了公平起见,就都没有回复,倒头又睡了。
走之前的几天一直加班,又发烧又感冒,没怎么睡觉,正好省得在车上无聊了。200多的卧铺钱真没浪费,从上车睡到下车。
回家过年越来越成了一种形式,和老同学的聚会也变成了机械的推杯换盏,没意思透了。不知道是我变了,还是他们变了,话题除了说谁结婚了,似乎就没什么可说的了。
过年最好的娱乐项目也就是打麻将了。恰好我又不擅长这个,每次都是给大家点炮,命中率相当的高。
第一次去延福寺祈愿,小时候在那边住了好久,似乎印象中不记得还有一个乾隆题过寺名的香火鼎盛的寺庙。在老朋友的指引下把寺庙的所有神圣都拜遍了,第一次拜佛拜的那么虔诚。似乎越长大,就越觉得很多事太无助,只能乞求上苍,不为能得到什么,只为让自己觉得还有所牵挂。
下次春节不知道什么状况。一年一年的,时间过的好快。
October 09 页面滚动,浮动层不动从同事那里得来一法,我说是“猫盖屎”。同事教导我说,“能盖住屎的就是好猫!”哈哈哈哈。
<html> <head> <script> function fl(){ var s=document.getElementById("bd"); s.contentWindow.document.body.innerHTML="<div style='border:1px solid blue;height:1000px;width:800px;padding:3px;'>the main content</div>"; } </script> </head> <body onload="fl();" style="margin:0px;"> <div style="position:absolute;right:30px;bottom:5px;background:yellow;">floating</div> <iframe id=bd frameborder=0 src="" style="width:100%;height:100%;"></iframe> </body> </html> September 05 [转]清洗各种污渍的方法是朋友邮件发给我的,也没有地址。所以无法写明出处。
So 厉害,share 一下!
1.除咖啡、茶渍三法 ①用甘油和蛋黄的混合溶液涂拭污渍处,待稍干后,再用清水洗涤即可。 July 25 再见了Embed,一些媒体播放器的符合web标准的代码[转]再见了Embed,一些媒体播放器的符合web标准的代码
由于Embed标签是Netscape的私有财产,故一直未被W3C认可,对于各种媒体文件使用Embed标签是非标准的,如何改变?Elizabeth Castro的 Bye Bye Embed 一文对于各种媒体播放器给出了很好的符合web标准的代码。
在线媒体播放--Google Video and YouTube
<object type="application/x-shockwave-flash" data="http://video.google.com/googleplayer.swf? » 8755581808731033658" width="400" height="326" id="VideoPlayback"> <param name="movie" value="http://video.google.com/googleplayer.swf? » docId=8755581808731033658" /> <param name="allowScriptAcess" value="sameDomain" /> <param name="quality" value="best" /> <param name="bgcolor" value="#FFFFFF" /> <param name="scale" value="noScale" /> <param name="salign" value="TL" /> <param name="FlashVars" value="playerMode=embedded" /> </object> 其实就是FLASH文件的调用
Windows Media Player 文件
<object type="video/x-ms-wmv" data="http://www.sarahsnotecards.com/catalunyalive/ » fishstore.wmv" width="320" height="260"> <param name="src" value="http://www.sarahsnotecards.com/catalunyalive/ » fishstore.wmv" /> <param name="autostart" value="true" /> <param name="controller" value="true" /> </object> 上面的代码没有Windows Media Player特有的classid,作者在IE5.5, IE6, IE7, Opera Win/Mac, Firefox Win/Mac, Safari下测试通过。
QuickTime movies 没有 embed 标签
<object classid="clsid:02BF25D5-8C17-4B23-BC80- » D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" width="320" height="260"> <param name="src" value="http://www.sarahsnotecards.com/catalunyalive/ » diables.mov" /> <param name="controller" value="true" /> <param name="autoplay" value="false" /> <!--[if !IE]>--> <object type="video/quicktime" data="http://www.sarahsnotecards.com/catalunyalive/ » diables.mov" width="320" height="260"> <param name="autoplay" value="false" /> <param name="controller" value="true" /> </object> <!--<![endif]--> </object> 出处:蓝色理想
--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web 技术研究与应用" group. To post to this group, send email to webbase@googlegroups.com To unsubscribe from this group, send email to webbase-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/webbase -~----------~----~----~----~------~----~------~--~---
July 21 用ASP.NET上传图片并生成带版权信息的缩略图<%@ Page Language="C#" ResponseEncoding="gb2312" %> <%@ import Namespace="System" %> <%@ import Namespace="System.IO" %> <%@ import Namespace="System.Drawing" %> <%@ import Namespace="System.Drawing.Imaging" %> <script runat="server"> void Page_Load(Object sender, EventArgs e) { if(!Page.IsPostBack) { ImgPreview.Visible=false; } } void GetThumbnailImage(int width,int height,string strInfo,int left,int right) { string file="Uploads/"+uploadFile.PostedFile.FileName.Substring(uploadFile.PostedFile.FileName.LastIndexOf('\\')+1); string newfile="Uploads/"+uploadFile.PostedFile.FileName.Substring(uploadFile.PostedFile.FileName.LastIndexOf('\\')+1)+".jpg"; string strAdd=strInfo; System.Drawing.Image oldimage = System.Drawing.Image.FromFile(Server.MapPath(file)); System.Drawing.Image thumbnailImage = oldimage.GetThumbnailImage(width, height,new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero); Response.Clear(); Bitmap output=new Bitmap(thumbnailImage); Graphics g=Graphics.FromImage(output); g.DrawString(strAdd,new Font("Courier New", 14),new SolidBrush(Color.Red),left,right); output.Save(Server.MapPath(newfile),System.Drawing.Imaging.ImageFormat.Jpeg); Response.ContentType = "image/gif"; ImgPreview.Visible=true; ImgPreview.ImageUrl=newfile; } bool ThumbnailCallback() { return true; } void Button_Click(object sender, EventArgs e) { int width,height,left,right; string strAddInfo=txtAddInfo.Text; width=Int32.Parse(txtWidth.Text); height=Int32.Parse(txtHeight.Text); left=Int32.Parse(txtLeft.Text); right=Int32.Parse(txtRight.Text); if(!(uploadFile.PostedFile.ContentLength>0)) { lblErrInfo.Text="没有选择文件"; } else { string path = Server.MapPath("./Uploads/"+uploadFile.PostedFile.FileName.Substring(uploadFile.PostedFile.FileName.LastIndexOf('\\')+1)); if(File.Exists(path)) { lblErrInfo.Text="已经有同名文件"; } else { uploadFile.PostedFile.SaveAs(path); GetThumbnailImage(width,height,strAddInfo,left,right); } } } </script> <html> <head> </head> <body> <form method="post" enctype="multipart/form-data" runat="server"> <p> <input id="uploadFile" type="file" runat="server" /> <asp:Label id="lblErrInfo" runat="server" forecolor="Red"></asp:Label> </p> <p> width:<asp:TextBox id="txtWidth" runat="server" Width="40px">100</asp:TextBox> height:<asp:TextBox id="txtHeight" runat="server" Width="40px">150</asp:TextBox> </p> <p> 添加信息:<asp:TextBox id="txtAddInfo" runat="server">AspxBoy.Com</asp:TextBox> </p> <p> 信息位置:left:<asp:TextBox id="txtLeft" runat="server" Width="40px">10</asp:TextBox> right:<asp:TextBox id="txtRight" runat="server" Width="40px">135</asp:TextBox> </p> <p> <input id="button" type="button" value="上传生成缩略图" onServerClick="Button_Click" runat="server" /> </p> <p><asp:Image id="ImgPreview" runat="server"></asp:Image> </p> <!-- Insert content here --> </form> </body> </html> July 18 MSN无法登陆(登录)的解决方法[转]不知道怎么回事,最近一段时间MSN登陆非常困难,必须尝试多次才有可能成功。一个偶然的机会,发现下面的方法可以快速登陆。
MSN无法登录的几种可能原因和解决方法: 1、最有可能的原因: 系统时间错误 返回信息:80048820,总是说防火墙设置阻止MSN的连接。但在MSN的网络连接测试中都是成功。 解决方法:系统日期不对造成的!!!!,请你认真查看是否在你升级到MSN7.5以后,系统日期变成了2004年,如果是直接将系统日期改成现在的时间。 点击右下角系统时间设置为当前正确时间。OK!
2、原因不明:系统为MSN 7.5 解决方法:打开“Internet Explorer”,点击“工具”里的“Internet选项”,选“高级”,点击“还原默认设置”,再点击“应用”,最后“确定”,一切搞定,就这么简单 3、原因不明: 解决方法:当登陆MSN返回“重试”,“取消”和“帮助”三个选项时,先选择“帮助”,再选择“重试”,这样很快就登陆成功了。 这种方法是某网友WINDOWS 2000,ADSL上网,安装了FW。 4、80048820 错误 故障现象:80048820 错误,用MSN连接检测一下说端口有问题,检查时间是正确的 解决方法:把INTERNET 选项里的 检查服务器证书吊销状态的勾去掉就可以了。 谢谢,我的也是报的这样的错,用这个方法成功了 5、由于病毒防火墙引起 解决方法:如果用的是norton病毒防火墙,在Norton个人防火墙设置中,将程序列表中有MSN MESSAGE程序,左击中间下拉菜单,将其改为全部允许. 6、封包长度不对
故障现象:80048820
供参考: 网友提供的其他一些解决方法:
请按照所列顺序尝试以下解决方法: 2. 确认MSN Messenger是否被防火墙所阻止。请移至http://webmessenger.msn.com/ 登录Web Messenger。点击“启动MSN Web Messenger”确认您是否可以登录。如果可以,那么MSN Messenger有可能被防火墙所阻止。如果您的计算机运行的是第三方(非 Microsoft)软件或防火墙软件(例如,Zone Alarm,Norton网络安全专家,或McAfee),请确保该软件配置为允许 Messenger 运行,然后再次尝试登录 MSN Messenger。请移至http://messenger.msn.com/help/issues.aspx 参阅相关信息。 3. 通过执行下列操作调整 Internet Explorer 中的代理服务器设置: 4. 请按如下步骤在MSN Messenger中清除代理服务器设置: -MSN Messenger6.2 -MSN Messenger7.0 -MSN Messenger7.5 5. 调整 Microsoft Internet Explorer 安全设置: 注意 在成功执行每个命令后,您都会收到“DllRegisterServer succeeded.”消息。请在收到此消息后再执行下一条命令。 - Microsoft Windows XP 和 Microsoft Windows 2000: - Microsoft Windows Millennium Edition (Me) 和 Microsoft Windows 98: f. 如果您使用的是 Windows XP,请清除安全套接字层 (SSL) 状态和自动完成历史记录: 6. 双击屏幕右下角的时区验证您的计算机的日期和时间设置正确无误。 7. 请再次尝试登录MSN Messenger 8. 如果您正在运行反病毒程序,请先关闭,看是否能登录MSN Messenger。如果可以,请联系您的软件制造厂商或查看相关文件如何配置解决此冲突。 9. 如果您收到“无效的用户名或密码”或“81000303”错误信息,请确保您使用的是正确的用户名和密码。确认您可以使用此帐户登录任何站点,请移至 http://www.passport.com 点击“登录”,如果您可以成功登录,您会看见“登出”按钮。如果失败,请更改您的密码,您可以到http: //memberservices.passport.net/default.srf/ 。 如果此方法有效,尝试再次登录MSN Messenger,请按如下步骤: -MSN Messenger7.0或更早的版本 -MSN Messenger7.5 10. 如果您仍然无法登录MSN Messenger, .NET Messenger服务可能临时不可用。请等待几分钟后再尝试登录。或者移至visit http://messenger.msn.com/status.aspx 查看服务器状态。 再试试 @ECHO OFF July 16 又想起重庆森林的片断下面是阿武的一段独白,也是影片最开始我们看到的。
“先生,这个罐头明天就过期了,那边还有很多,你再换一罐吧?”
“不用了,谢谢。” 我们分手的那天是愚人节,所以我一直当她是开玩笑,我愿意让她这个玩笑维持一个月。从分手的那一天开始,我每天买一罐5月1号到期的凤梨罐头,因为凤梨是阿May最爱吃的东西,而5月1号是我的生日。我告诉我自己,当我买满30罐的时候,她如果还不回来,这段感情就会过期。 已经六个月都没有破过案,可是我今天抓到一个通缉犯。每一次我有好消息,我第一个想通知的就是我的女朋友阿May。 我们也分开一段时间了,我不当这个是玩笑,也许从开始就不会结束的。如果下周结束以后她还没有联系我,那么这段感情也就过期了。
每段感情开始的可能很意外,分开却都像宿命一样,无可挽回。也许这本就是我的宿命。
感冒一周了,还没完全好。不知道下周结束的时候是不是会好。 July 10 GOOGLE的个性化主页拖搁功能的实现方法[转]CSS代码
<style>
.dragTable{ border-top:1px solid #3366cc; margin-bottom: 10px; width:100%; background-color:#FFFFFF; } td{vertical-align:top; } .dragTR{ cursor:move; color:#7787cc; text-decoration:underline; background-color:#e5eef9; padding:10px 0 10px 5px; font-weight:bold; } #parentTable{ border-collapse:collapse; letter-spacing:25px; } </style> Jscript代码
<script defer language="jscript"> var Drag={dragged:false, ao:null, tdiv:null, dragStart:function(){ Drag.ao=event.srcElement; if((Drag.ao.tagName=="TD")||(Drag.ao.tagName=="TR")){ Drag.ao=Drag.ao.offsetParent; Drag.ao.style.zIndex=100; }else return; Drag.dragged=true; Drag.tdiv=document.createElement("div"); Drag.tdiv.innerHTML=Drag.ao.outerHTML; Drag.ao.style.border="1px dashed red"; Drag.tdiv.style.display="block"; Drag.tdiv.style.position="absolute"; Drag.tdiv.style.filter="alpha(opacity=70)"; Drag.tdiv.style.cursor="move"; Drag.tdiv.style.border="1px solid #000000"; Drag.tdiv.style.width=Drag.ao.offsetWidth; Drag.tdiv.style.height=Drag.ao.offsetHeight; Drag.tdiv.style.top=Drag.getInfo(Drag.ao).top; Drag.tdiv.style.left=Drag.getInfo(Drag.ao).left; document.body.appendChild(Drag.tdiv); Drag.lastX=event.clientX; Drag.lastY=event.clientY; Drag.lastLeft=Drag.tdiv.style.left; Drag.lastTop=Drag.tdiv.style.top; }, draging:function(){//重要:判断MOUSE的位置 if(!Drag.dragged||Drag.ao==null)return; var tX=event.clientX; var tY=event.clientY; Drag.tdiv.style.left=parseInt(Drag.lastLeft)+tX-Drag.lastX; Drag.tdiv.style.top=parseInt(Drag.lastTop)+tY-Drag.lastY; for(var i=0;i<parentTable.cells.length;i++){ var parentCell=Drag.getInfo(parentTable.cells[i]); if(tX>=parentCell.left&&tX<=parentCell.right&&tY>=parentCell.top&&tY<=parentCell.bottom){ var subTables=parentTable.cells[i].getElementsByTagName("table"); if(subTables.length==0){ if(tX>=parentCell.left&&tX<=parentCell.right&&tY>=parentCell.top&&tY<=parentCell.bottom){ parentTable.cells[i].appendChild(Drag.ao); } break; } for(var j=0;j<subTables.length;j++){ var subTable=Drag.getInfo(subTables[j]); if(tX>=subTable.left&&tX<=subTable.right&&tY>=subTable.top&&tY<=subTable.bottom){ parentTable.cells[i].insertBefore(Drag.ao,subTables[j]); break; }else{ parentTable.cells[i].appendChild(Drag.ao); } } } } } , dragEnd:function(){ if(!Drag.dragged)return; Drag.dragged=false; Drag.mm=Drag.repos(150,15); Drag.ao.style.borderWidth="0px"; Drag.ao.style.borderTop="1px solid #3366cc"; Drag.tdiv.style.borderWidth="0px"; Drag.ao.style.zIndex=1; }, getInfo:function(o){//取得坐标 var to=new Object(); to.left=to.right=to.top=to.bottom=0; var twidth=o.offsetWidth; var theight=o.offsetHeight; while(o!=document.body){ to.left+=o.offsetLeft; to.top+=o.offsetTop; o=o.offsetParent; } to.right=to.left+twidth; to.bottom=to.top+theight; return to; }, repos:function(aa,ab){ var f=Drag.tdiv.filters.alpha.opacity; var tl=parseInt(Drag.getInfo(Drag.tdiv).left); var tt=parseInt(Drag.getInfo(Drag.tdiv).top); var kl=(tl-Drag.getInfo(Drag.ao).left)/ab; var kt=(tt-Drag.getInfo(Drag.ao).top)/ab; var kf=f/ab; return setInterval(function(){if(ab<1){ clearInterval(Drag.mm); Drag.tdiv.removeNode(true); Drag.ao=null; return; } ab--; tl-=kl; tt-=kt; f-=kf; Drag.tdiv.style.left=parseInt(tl)+"px"; Drag.tdiv.style.top=parseInt(tt)+"px"; Drag.tdiv.filters.alpha.opacity=f; } ,aa/ab) }, inint:function(){//初始化 for(var i=0;i<parentTable.cells.length;i++){ var subTables=parentTable.cells[i].getElementsByTagName("table"); for(var j=0;j<subTables.length;j++){ if(subTables[j].className!="dragTable")break; subTables[j].rows[0].className="dragTR"; subTables[j].rows[0].attachEvent("onmousedown",Drag.dragStart); } } document.onmousemove=Drag.draging; document.onmouseup=Drag.dragEnd; } //end of Object Drag } Drag.inint(); function _show(str){ var w=window.open('',''); var d=w.document; d.open(); str=str.replace(/=(?!")(.*?)(?!")( |>)/g,"=\"$1\"$2"); str=str.replace(/(<)(.*?)(>)/g,"<span style='color:red;'><$2></span><br />"); str=str.replace(/\r/g,"<br />\n"); d.write(str); } </script> HTML代码 <table border="0" cellpadding="0" cellspacing="10" width="100%" id="parentTable"> <tr> <td width="25%"> <table border=0 class="dragTable" cellspacing="0"> <tr> <td><b>传说中的标题</b></td> </tr> <tr> <td>我什么也没看见</td> <tr> </table> </td> <td width="25%"> <table border=0 class="dragTable" cellspacing="0"> <tr> <td><b>传说中的标题</b></td> </tr> <tr> <td>我什么也没看见</td> <tr> </table> </td> <td width="25%"> <table border=0 class="dragTable" cellspacing="0"> <tr> <td><b>传说中的标题</b></td> </tr> <tr> <td>我什么也没看见</td> <tr> </table> </td> </tr> </table> |
|
|