javascript支持firefox,ie7页面布局拖拽效果代码


Posted in Javascript onDecember 20, 2007

javascript 拖拽JavaScript Google IG Drag Demo,非常棒的拖动,准备用于F2Blog新Theme的后台模块设置,之间的拖

拖拽效果的页面效果演示地址:http://img.3water.com/online/tuozhuai/google_drag.htm
加强版效果演示地址:http://img.3water.com/online/tuozhuai/google_drag2.htm
拖拽原理:
关于拖拽的基础,可以参考这篇文章,讲得非常不错。

其实原理很简单,就是把绑定三个事件:onmousedown , onmousemove , onmouseup。
在鼠标点下时(onmousedown)把元素的坐标设置为鼠标的坐标,并把 position 设置为绝对坐标。
在鼠标移动时(onmousemove)改变元素坐标。
在鼠标弹起时(onmouseup)取消绑定的事件,并做后续操作。
javascript 拖拽下面是关于仿 google 个性化主页拖拽效果的一个 Demo (需包含 prototype)。  完整下载包:Google 
Drag.rar (19.82 KB ,下载:247次)
总共有四个文件:

google_drag.html 
prototype.js 
通用拖拽函数 drag.js 
仿 google 个性化主页的拖拽 google_drag.js 
google_drag.html 中最后几行中有个初始化拖拽函数

window.onload = function(){initDrag();} 

必须写成这样,如果直接写成

window.onload = initDrag(); 

这样会在 IE 下报个错误:尚未实现
其他代码可以直接查看源码,就几行注释。其实就是用 JavaScript 绘制了 15 个 div,然后设置它们 
class 都为drag_div (后面是通过 className 来判断元素是否可拖拽),然后把可拖拽的部分的 ID 设置
元素的 ID 后加个 _h(也可设置自己为拖拽部分)
drag.js 是一个比较通用的拖拽函数。里面包含四个最简单的函数:start_Drag, when_Drag, end_Drag, 
after_Drag。这四个函数只是实现最基本的拖拽功能,要实现其他功能可修改或在后面覆盖掉这些函数。
google_drag.js 是仿 google 个性化主页拖拽效果的函数。它覆盖了上面说的那个四个函数,实现比较
高级的效果。
拖拽其实应该还是比较简单的,实现完拖拽后就是要用 Ajax 来传递拖拽后的位置,改变服务器端的值,
这样下次用户访问时元素才会位置不变。效果的实现是非常简单的,主要是怎么融合到已有的项目中,从
而提高用户体验。
这个 Demo 有一部分参考的网上的代码。
在网上还有很多这种例子,不过感觉效率都没这个高。有一些例子是把所有元素的位置都设置为 
absolute,然后直接修改各个元素的 top 和left来显示效果,感觉那个不是很通用,那样的话比如我要
把这个效果修改为一个数的拖拽,并且记录各个元素之间的位置,比较麻烦。这个例子中要记录元素的位
置,只需在拖拽完成后记录被拖拽元素的 id 以及拖拽到了哪个元素的前面然后传给服务器端去修改就可
以了。

Update 2007-01-26 1:22
加了个加强版的,效果请看 Demo。其实就是加了个函数,让他保证左上方那个大块只会有一个元素,如
果超过一个则把后面的挤到下面的第一列去,如果没有元素则从下面的第一列拿出第一个元素放到左上方
的大块中,如果下面的第一列没有元素,则找第二列,第三列。 

Javascript 相关文章推荐
JS 参数传递的实际应用代码分析
Sep 13 Javascript
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
Feb 10 Javascript
js实现单行文本向上滚动效果实例代码
Nov 28 Javascript
jQuery调用RESTful WCF示例代码(GET方法/POST方法)
Jan 26 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
Jun 14 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
Jan 11 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
Dec 20 Javascript
JavaScript如何使用插值实现图像渐变
Jun 28 Javascript
解决Nuxt使用axios跨域问题
Jul 06 Javascript
vue+axios 拦截器实现统一token的案例
Sep 11 Javascript
解决js中的setInterval清空定时器不管用问题
Nov 17 Javascript
原生JavaScript实现留言板
Jan 10 Javascript
麦鸡的TAB切换功能结合了javascript和css
Dec 17 #Javascript
用javascript来实现动画导航效果的代码
Dec 16 #Javascript
不用ajax实现点击文字即可编辑的方法
Dec 16 #Javascript
JS是否可以跨文件同时控制多个iframe页面的应用技巧
Dec 16 #Javascript
Javascript常用运算符(Operators)-javascript基础教程
Dec 14 #Javascript
javascript实现仿银行密码输入框效果的代码
Dec 13 #Javascript
CLASS_CONFUSION JS混淆 全源码
Dec 12 #Javascript
You might like
ASP和PHP都是可以删除自身的
2007/04/09 PHP
php笔记之:数据类型与常量的使用分析
2013/05/14 PHP
php实现删除指定目录下相关文件的方法
2014/10/20 PHP
php防止恶意刷新与刷票的方法
2014/11/21 PHP
php使用google地图应用实例
2014/12/31 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
2017/06/07 PHP
3分钟写出来的Jquery版checkbox全选反选功能
2013/10/23 Javascript
Json和Jsonp理论实例代码详解
2013/11/15 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
如何用js实现鼠标向上滚动时浮动导航
2016/07/18 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
fastadmin中调用js的方法
2019/05/14 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
Vue如何基于es6导入外部js文件
2020/05/15 Javascript
详解Django中的过滤器
2015/07/16 Python
深入了解Python数据类型之列表
2016/06/24 Python
Python简单遍历字典及删除元素的方法
2016/09/18 Python
python numpy格式化打印的实例
2018/05/14 Python
Python SELENIUM上传文件或图片实现过程
2019/10/28 Python
解决Keras 中加入lambda层无法正常载入模型问题
2020/06/16 Python
CSS3教程(1):什么是CSS3
2009/04/02 HTML / CSS
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
农林经济管理专业自荐信
2014/09/01 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
Python中with上下文管理协议的作用及用法
2022/03/18 Python
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers