我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络学院 > 图型图像 > FIREWORKS > 可以拖拽的小窗口程序
热门文章排行
热门文章排行 Photoshop制作精美的简历封面(10-12)
在Flash课件中正确调用SWF文件(11-25)
巧用Photoshop徒手绘制扇子(10-19)
CorelDRAW12循序渐进-制作文本效果(12-29)
消除文字勾边后产生毛刺的小技巧(06-14)
精采文章排行
精采文章排行 GIF动态图片的修改(11-07)
Q版人物绘制全过程(11-07)
Flash互动电子地图制作手册——入门(11-01)
Flash 8.0前瞻——揭开8 ball的薄面(10-24)
土人AS入门教程对象篇(10-24)
技术专题推荐
网管论坛交流
 

可以拖拽的小窗口程序 

作者:   来源:Linux 宝库   点击:   日期:2006-11-25


-->
最近看了很多这种类似的站点 比如MS的http://www.start.com/
发现有一个趋势 就是用户自定义的东西越来越多 并且越来越高级
就是所谓的web2.0吧 不过话又说回来 在中国要想推行这样的风潮 可能还要过段时间
因为中国大多数网民的文化层次还不到这个水平
闲话不多说了 给大家介绍一下我写的这个程序 看了效果以后模仿的 不过还是有很多bug哈 比起那些站点来差太远了 仅给大家提供一点点参考 说得不对的地方大家多多指正哦

首先介绍一下这个程序的一些相关事件和方法:

event.button:事件发生时表示鼠标的动作 如果为1则是鼠标左键 2为鼠标右键 不过现在好像MS都已经有8个值了 难道以后鼠标的发展方向是8个键?

parentNode:父节点

event.ClientX:事件发生时的鼠标x值

event.ClientY:事件发生时的鼠标Y值

setCapture()方法:建立对象和鼠标之间的通讯 也就是说鼠标作用在此对象上时才跟踪鼠标

releaseCapture()方法:切断对象和鼠标之间的通讯

JavaScript程序如下:
<script>
var move=false;

function StartDrag(obj) //定义准备拖拽的函数
{
if(event.button==1&&event.srcElement.tagName.toUpperCase()=="DIV")//判断事件发生地点 防止无效拖拽
{
obj.setCapture(); //对当前对象的鼠标动作进行跟踪
obj.style.background="#999"; //改变颜色
move=true;
}
}

function Drag(obj) //定义拖拽函数
{
if(move)
{
var oldwin=obj.parentNode; //定义父对象
oldwin.style.left=event.clientX-50;//定义父对象目前位置
oldwin.style.top=event.clientY-10;
}

}

function StopDrag(obj) //定义停止拖拽函数
{
obj.style.background="#000"; //改变颜色
obj.releaseCapture(); //停止对当前对象的鼠标跟踪
move=false;
}

</script>




查看效果:



<HTML>
<body>


<style>
body{font-family:Verdana;font-size:11px;color:#333;}
#win1{[position:absolute;left:100;top:100;width:200px;height:150px;border:1px solid #000;}
.title{width:100%;background:#000;height:18px;color:#fff;cursor:hand;} 
 </style>
 
<script>
var move=false; 
function StartDrag(obj)                      
{
 if(event.button==1&&event.srcElement.tagName.toUpperCase()=="DIV")
 {
  obj.setCapture();
  obj.style.background="#999";
  move=true;
  } 
}


function Drag(obj)                  
{
 if(move)
 {
  var oldwin=obj.parentNode;
  oldwin.style.left=event.clientX-50;
  oldwin.style.top=event.clientY-10;
 }
 
 }


function StopDrag(obj)
{
  obj.style.background="#000";
  obj.releaseCapture();
  move=false;
  } 


</script> 


<div id="win1">
<div class="title" onMousedown="StartDrag(this)" onMouseup="StopDrag(this)" onMousemove="Drag(this)" >窗口1</div>
This is a moveable window.<br>
Moreinfo in www.achome.cn  .
</div>


</body> 
</HTML> 





文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·消除文字勾边后产生毛刺的小技巧 · 解决COREDRAW9与双核CPU冲突的技巧 5
·CorelDRAW入门与进阶实例:8.2椭圆按钮制 ·CorelDRAW印前分色新手上路
·IllustratorCS制作刺绣效果 ·CorelDRAW使用技巧-如何在CorelDRAW中虚

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。