欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jquery_ui__draggable UIjQuery浏览器JavaScript框架 

程序员文章站 2022-04-02 21:51:37
...
转载请注明文章来源自http://www.dabaii.com/

jQuery UI 很不错,最近在学习笔记一下,一下学习资料仅供参考,由于本人也是初学,对所有代码以及说明不做100%正确保证。请根据实际情况和现实理解和使用。如果发现错误,请告诉我,谢谢。

Draggable拖动是jQ UI 的第一个例子。今天学习了下,由于英文阅读能力有限 有些属性没弄明白,以后补充。

初始化框架,引用对应ui库文件



JavaScript代码
<link type="text/css" href="../development-bundle/themes/ui-lightness/ui.all.css" rel="stylesheet" />   
<script type="text/javascript" src="../js/jquery-1.3.2.min.js""></script>  
<script type="text/javascript" src="../development-bundle/ui/ui.core.js"></script>  
<script type="text/javascript" src="../development-bundle/ui/ui.draggable.js"></script>  


dom加载完以后执行绑定。

XML/HTML代码
<script type="text/javascript">  
    $(function() {   
        $("#draggable").draggable();   
    });   
</script>  
现在基本的拖拽已经可以实现了。 只要你在页面创建一个 以 #draggable命名的标签就ok了

draggable方法有很多参数,今天我瞎摸弄明白了一下几个:



addClasses:
如果设置成false,将不添加ui-draggable这个class.当调用 .draggable() 初始化上百个元素时,可以优化性能(【王子很坏】提供翻译)

appendTo :
进行拖拽时,被传递或被appendTo选项选择的元素将被当做draggable helper的容器,默认情况下,helper被追加到那个draggable元素相同的容器中((【王子很坏】提供翻译 , 这个属性我测试没成功。研究中)

axis:
拖拽动作只在 对应的轴向上移动。 参数x 或 y

cancel :
当拖拽对象是cancel说设置的标签或者对象时候,拖拽无效

containment:
限制拖拽对象在参数设置区域,参数可以为 标签 对象 或者 是[x1,y2,x2,y2]的像素区域

cursor:
设置 拖拽动作鼠标样式

cursorAt:
设置拖拽动作发生鼠标所在位置 参数为 { cursorAt: { left: 5 } }

delay:
拖拽动作延迟多少毫秒后响应 参数 毫秒

distance:
拖拽动作离开拖拽对象 一定像素以后 拖拽发生 参数数值

grid :
拖拽动作发生后 造成 对其网格效果, 其效果是每次移动 固定像素距离,参数为 [20, 20]

handle:
设置拖拽对象里面可实现拖拽动作的对象。参数是选择器 类似于浏览器一样,只能通过顶部蓝色条拖拽,但是拖动的是整个浏览器。

helper :
拖拽动作发生时 原始对象不动,复制一个对象给拖拽事件 对象在拖拽结束后是否保存在结束位置取决于参数   'original', 'clone', Function. 参数为function的时候不许返回一个 dom标签。

iframeFix :
防止应为iframes 的存在导致拖拽在中途丢失

opacity :
设置拖拽时的透明度 参数浮点型  1.00-0.00 拖拽结束后 透明度回复初始状态

scroll :
设置拖动对象被拖动时,是否允许拖出前容器(浏览器)显示区域(也就是说触不发auto-scrolls *关于auto-scrolls请看后面的解释*)。设置为false ,拖动对象碰到边框的时候容器窗口不会随着碰撞移动主体窗口。 注意,这个经过我测试,设置为false 一样会产生滚动条。

scrollSensitivity :
设置拖拽对象被拖拽时与容器发生碰撞的响应距离。貌似这样解释不好理解,通俗的说,就是当你碰到边框的多少像素范围内就发生auto-scrolls事件。

scrollSpeed:
当拖拽对象和浏览器边发生碰撞时,容器每次移动主体窗口的距离。

revert :
设置拖拽事件执行完毕后拖拽是否生效,如果不生效那么将以动画方式返回到拖拽对象初始化位置。参数为逻辑值或者字符串'valid', 'invalid'

revertDuration :
在revert事件执行时候,设置以动画返回初始化位置的速度。参数为 数值毫秒。在没有设置revert的情况下 改属性没意义。

snap:
拖拽对象设置该属性以后,在2个拖拽对象即将发生接触时,拖拽对象会自动吸附到相互的边上。类似于磁铁效果或者ps里面的对齐参考。参数为逻辑值, 只有2个或者2个以上对象设置了该属性才能相互发生作用。

snapMode :
拖拽对象相互之间的吸附模式。参数为'inner', 'outer', 'both'。 默认值是both。

snapTolerance:
拖拽对象相互之间发生吸附模式的作用范围,可以理解为 磁铁的磁力, 参数为 像素单位。

stack :
当你有多个拖拽对象的时候,你可以使用此参数把他们设置为一个组,然后在这个参数里面有可以定义最小z轴,这些拖拽对象,将不再按照原始z轴层叠,而是按照最后点击循序来层叠。类似于windows多个文件夹窗口一样的层叠。 参数方式{ stack: { group: 'div', min: 50 }}。

zIndex 拖动事件触发时候 z轴改成对应参数,拖拽结束,z轴还原。

注:【aoto-scroll  是自动滚动,也就是说 拖拽对象在碰撞到边框的时候,容器(浏览器)滚动条会自动延伸滚动条 并且屏幕像碰撞方向偏移~】

事件:

拖拽有3个事件,和4个参数 详情可以直接看官方aip那些不用详细说明。

基本参数写法

JavaScript代码
$("#draggable").draggable({ opacity: 0.35 });  
如何获取参数?

组件提供get和set方法来获取和设置参数。

以上面设置透明度为例:

JavaScript代码
//getter   
var opacity = $('.selector').draggable('option', 'opacity');   
//setter   
$('.selector').draggable('option', 'opacity', 0.35);  


以上只是draggable的部分内容,明天更新剩下的。如果有兴趣请直接访问

http://jqueryui.com/demos/draggable/

唉都怪英语没学好。痛苦中~~~