您的位置:首页 > Web前端 > JavaScript

对google个性主页的拖拽效果的js的完整注释

2007-06-25 20:09 357 查看
// 工具类,使用Util的命名空间,方便管理
var  Util  =  new Object();
// 获取http header里面的UserAgent,浏览器信息
Util.getUserAgent  =  navigator.userAgent;
// 是否是Gecko核心的Browser,比如Mozila、Firefox
Util.isGecko  =  Util.getUserAgent.indexOf( " Gecko ")  !=   -1 ;
// 是否是Opera
Util.isOpera  =  Util.getUserAgent.indexOf( " Opera ")  !=   -1 ;
// 获取一个element的offset信息,其实就是相对于Body的padding以内的绝对坐标
// 后面一个参数如果是true则获取offsetLeft,false则是offsetTop
// 关于offset、style、client等坐标的定义参考dindin的这个帖子:http://www.jroller.com/page/dindin/?anchor=pro_java_12
// 将一个(参数中的funcName是这个fuction的名字)绑定到一个element上,并且以这个element的上下文运行,其实是一种继承,这个可以google些文章看看
// 重新计算所有的可以拖拽的element的坐标,对同一个column下面的可拖拽图层重新计算它们的高度而得出新的坐标,防止遮叠
// 计算出来的坐标记录在pagePosLeft和pagePosTop两个属性里面

// 隐藏Google Ig中间那个table,也就是拖拽的容器,配合show一般就是刷新用,解决一些浏览器的怪癖
// 显示Google Ig中间那个table,解释同上

// 移动时显示的占位虚线框
ghostElement  =   null ;
// 获取这个虚线框,通过dom动态生成

// 初始化可以拖拽的Element的函数,与拖拽无关的我去掉了

// 下面就是draggable里面用到的那4个
// 公用的开始拖拽的函数

// 在拖拽时的相应函数,由于绑定到鼠标的move这个event上,所以会传入鼠标的坐标clientX, clientY
// 拖拽完毕
// 拖拽后的执行钩子

// 可拖拽Element的原形,用来将event绑定到各个钩子,这部分市比较通用的,netvibes也是基本完全相同的实现
// 这部分推荐看dindin的这个,也会帮助理解,http://www.jroller.com/page/dindin/?anchor=pro_java_12

 

// 下面是初始化的函数了,看看上面这些东西怎么被调用

// google的页面里可以拖动的部分的id是"t_1"
// 挂载到,载入完毕执行。不过实际上google没有用。
// 而是写在页面最下面,异曲同工吧,也许直接写在页面是种怪癖,或者也有可能是兼容性考虑。

// 请将下面两条被注释掉的代码加,到你自己下载的一个google ig页面里面,把里面的所有其余删除,挂上这个js也可以拖拽了,哈哈
// _table=getElementById("t_1");
// = _IG_initDrag(_table);

// 其实看懂这些代码对学习java很有益,希望对大家能有帮助
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: