js之 draggable圖片div指定范圍內(nèi)拖動(dòng)加調(diào)整大小


案例demo

demo解析

resizable:改變圖片形狀
containment:控制在一個(gè)范圍內(nèi)
$("#resizable").resizable({ containment: '.ey_show_a' });

draggable:拖動(dòng)位置
containment:控制在一個(gè)范圍內(nèi)
$("#resizable").draggable({ containment: '.ey_show_a' });

draggable參數(shù)·概述

在任何DOM元素啟用拖動(dòng)功能咒钟。通過單擊鼠標(biāo)并拖動(dòng)對(duì)象在窗口內(nèi)的任何地方移動(dòng)性含。
官方示例地址:http://jqueryui.com/demos/draggable/

所有的事件回調(diào)函數(shù)都有兩個(gè)參數(shù):event和ui举哟,瀏覽器自有event對(duì)象厚柳,和經(jīng)過封裝的ui對(duì)象
ui.helper - 表示被拖拽的元素的JQuery對(duì)象
ui.position - 表示相對(duì)當(dāng)前對(duì)象贬循,鼠標(biāo)的坐標(biāo)值對(duì)象{top,left}
ui.offset - 表示相對(duì)于當(dāng)前頁面斧账,鼠標(biāo)的坐標(biāo)值對(duì)象{top,left}

·參數(shù)(參數(shù)名 : 參數(shù)類型 : 默認(rèn)值)
addClasses : Boolean : true
如果設(shè)置成false,將在加載時(shí)阻止ui-draggable樣式的加載寇钉。
當(dāng)有很多對(duì)象要加載draggable()插件的情況下搏恤,這將對(duì)性能有極大的優(yōu)化违寿。
初始: ('.selector').draggable({ addClasses: false }); 獲取: var addClasses =('.selector').draggable('option', 'addClasses');
設(shè)置: $('.selector').draggable('option', 'addClasses', false);

appendTo : Element,Selector : 'parent'
The element passed to or selected by the appendTo option will be used as the draggable helper's container during dragging. By default, the helper is appended to the same container as the draggable.
初始:('.selector').draggable({ appendTo: 'body' }); 獲取:var appendTo =('.selector').draggable('option', 'appendTo');
設(shè)置:$('.selector').draggable('option', 'appendTo', 'body');

axis : String : false
約束拖動(dòng)的動(dòng)作只能在X軸或Y軸上執(zhí)行熟空,可選值:'x', 'y'藤巢。
初始:('.selector').draggable({ axis: 'x' }); 獲取:var axis =('.selector').draggable('option', 'axis');
設(shè)置:$('.selector').draggable('option', 'axis', 'x');

cancel : Selector : ':input,option'
防止在指定的對(duì)象上開始拖動(dòng)息罗。
初始:('.selector').draggable({ cancel: 'button' }); 獲鹊嘀洹:var cancel =('.selector').draggable('option', 'cancel');
設(shè)置:$('.selector').draggable('option', 'cancel', 'button');

connectToSortable : Selector : false
允許draggable被拖拽到指定的sortables中,如果使用此選項(xiàng)helper屬性必須設(shè)置成clone才能正常工作迈喉。
初始:('.selector').draggable({ connectToSortable: 'ul#myList' }); 獲壬芄巍:var connectToSortable =('.selector').draggable('option', 'connectToSortable');
設(shè)置:$('.selector').draggable('option', 'connectToSortable', 'ul#myList');

containment : Selector,Element,String, Array : false
強(qiáng)制draggable只允許在指定元素或區(qū)域的范圍內(nèi)移動(dòng),可選值:'parent', 'document', 'window', [x1, y1, x2, y2].
初始:('.selector').draggable({ containment: 'parent' }); 獲劝っ:var containment =('.selector').draggable('option', 'containment');
設(shè)置:$('.selector').draggable('option', 'containment', 'parent');

cursor : String : 'auto'
指定在做拖拽動(dòng)作時(shí)孩革,鼠標(biāo)的CSS樣式。
初始:('.selector').draggable({ cursor: 'crosshair' }); 獲鹊迷恕:var cursor =('.selector').draggable('option', 'cursor');
設(shè)置:$('.selector').draggable('option', 'cursor', 'crosshair');

cursorAt : Object : false
當(dāng)開始移動(dòng)時(shí)膝蜈,鼠標(biāo)定位在的某個(gè)位置上(最多兩個(gè)方向)∪鄄簦可選值:{ top, left, right, bottom }.
初始:('.selector').draggable({ cursorAt: { left: 5 } }); 獲缺ゲ:var cursorAt =('.selector').draggable('option', 'cursorAt');
設(shè)置:$('.selector').draggable('option', 'cursorAt', { left: 5 });

delay : Integer : 0
當(dāng)鼠標(biāo)點(diǎn)下后,延遲指定時(shí)間后才開始激活拖拽動(dòng)作(單位:毫秒)置逻。此選項(xiàng)可以用來防止不想要的拖累元素時(shí)的誤點(diǎn)擊推沸。
初始:('.selector').draggable({ delay: 500 }); 獲取:var delay =('.selector').draggable('option', 'delay');
設(shè)置:$('.selector').draggable('option', 'delay', 500);

distance : Integer : 1
當(dāng)鼠標(biāo)點(diǎn)下后券坞,只有移動(dòng)指定像素后才開始激活拖拽動(dòng)作鬓催。
初始:('.selector').draggable({ distance: 30 }); 獲取:var distance =('.selector').draggable('option', 'distance');
設(shè)置:$('.selector').draggable('option', 'distance', 30);

grid : Array : false
拖拽元素時(shí)报慕,只能以指定大小的方格進(jìn)行拖動(dòng)深浮。可選值:[x,y]
初始:('.selector').draggable({ grid: [50, 20] }); 獲让吒浴:var grid =('.selector').draggable('option', 'grid');
設(shè)置:$('.selector').draggable('option', 'grid', [50, 20]);

handle : Element, Selector : false
限制只能在拖拽元素內(nèi)的指定元素開始拖拽飞苇。
初始:('.selector').draggable({ handle: 'h2' }); 獲取:var handle =('.selector').draggable('option', 'handle');
設(shè)置:$('.selector').draggable('option', 'handle', 'h2');

helper : String, Function : 'original'
拖拽元素時(shí)的顯示方式蜗顽。(如果是函數(shù)布卡,必須返回值是一個(gè)DOM元素)可選值:'original', 'clone', Function
初始:('.selector').draggable({ helper: 'clone' }); 獲取:var helper =('.selector').draggable('option', 'helper');
設(shè)置:$('.selector').draggable('option', 'helper', 'clone');

iframeFix : Boolean, Selector : false
可防止當(dāng)mouseover事件觸發(fā)拖拽動(dòng)作時(shí)雇盖,移動(dòng)過iframes并捕獲到它(內(nèi)部?jī)?nèi)容)忿等,如果設(shè)置成true,則屏蔽層會(huì)覆蓋頁面的iframe崔挖。如果設(shè)置成對(duì)應(yīng)的選擇器贸街,則屏蔽層會(huì)覆蓋相匹配的iframe庵寞。
初始:('.selector').draggable({ iframeFix: true }); 獲取:var iframeFix =('.selector').draggable('option', 'iframeFix');
設(shè)置:$('.selector').draggable('option', 'iframeFix', true);

opacity : Float : false
當(dāng)元素開始拖拽時(shí)薛匪,改變?cè)氐耐该鞫取?br> 初始:('.selector').draggable({ opacity: 0.35 }); 獲染璐ā:var opacity =('.selector').draggable('option', 'opacity');
設(shè)置:$('.selector').draggable('option', 'opacity', 0.35);

refreshPositions : Boolean : false
如果設(shè)置成true,所有移動(dòng)過程中的坐標(biāo)都會(huì)被記錄逸尖。(注意:此功能將影響性能)
初始:('.selector').draggable({ refreshPositions: true }); 獲裙帕ぁ:var refreshPositions =('.selector').draggable('option', 'refreshPositions');
設(shè)置:$('.selector').draggable('option', 'refreshPositions', true);

revert : Boolean, String : false
當(dāng)元素拖拽結(jié)束后,元素回到原來的位置娇跟。
初始:('.selector').draggable({ revert: true }); 獲妊页荨:var revert =('.selector').draggable('option', 'revert');
設(shè)置:$('.selector').draggable('option', 'revert', true);

revertDuration : Integer : 500
當(dāng)元素拖拽結(jié)束后,元素回到原來的位置的時(shí)間苞俘。(單位:毫秒)
初始:('.selector').draggable({ revertDuration: 1000 }); 獲软锷颉:var revertDuration =('.selector').draggable('option', 'revertDuration');
設(shè)置:$('.selector').draggable('option', 'revertDuration', 1000);

scope : String : 'default'
設(shè)置元素只允許拖拽到具有相同scope值的元素。
初始:('.selector').draggable({ scope: 'tasks' }); 獲让缯汀:var scope =('.selector').draggable('option', 'scope');
設(shè)置:$('.selector').draggable('option', 'scope', 'tasks');

scroll : Boolean : true
如果設(shè)置為true襟诸,元素拖拽至邊緣時(shí),父容器將自動(dòng)滾動(dòng)基协。
初始:('.selector').draggable({ scroll: false }); 獲雀枨住:var scroll =('.selector').draggable('option', 'scroll');
設(shè)置:$('.selector').draggable('option', 'scroll', false);

scrollSensitivity : Integer : 20
當(dāng)元素拖拽至邊緣時(shí),父窗口一次滾動(dòng)的像素澜驮。
初始:('.selector').draggable({ scrollSensitivity: 40 }); 獲认菥尽:var scrollSensitivity =('.selector').draggable('option', 'scrollSensitivity');
設(shè)置:$('.selector').draggable('option', 'scrollSensitivity', 40);

scrollSpeed : Integer : 20
當(dāng)元素拖拽至邊緣時(shí),父窗口滾動(dòng)的速度杂穷。
初始:('.selector').draggable({ scrollSpeed: 40 }); 獲群凡:var scrollSpeed =('.selector').draggable('option', 'scrollSpeed');
設(shè)置:$('.selector').draggable('option', 'scrollSpeed', 40);

snap : Boolean, Selector : false
當(dāng)設(shè)置為true或元素標(biāo)簽時(shí),元素拖動(dòng)到其它元素的邊緣時(shí)耐量,會(huì)自動(dòng)吸附其它元素飞蚓。
初始:('.selector').draggable({ snap: 'span' }); 獲取:var snap =('.selector').draggable('option', 'snap');
設(shè)置:$('.selector').draggable('option', 'snap', 'span');

snapMode : String : 'both'
確定拖拽的元素吸附的模式廊蜒∨颗。可選值:'inner', 'outer', 'both'
初始:('.selector').draggable({ snapMode: 'outer' }); 獲取:var snapMode =('.selector').draggable('option', 'snapMode');
設(shè)置:$('.selector').draggable('option', 'snapMode', 'outer');

snapTolerance : Integer : 20
確定拖拽的元素移動(dòng)至其它元素多少像素的距離時(shí)山叮,發(fā)生吸附的動(dòng)作著榴。
初始:('.selector').draggable({ snapTolerance: 40 }); 獲取:var snapTolerance =('.selector').draggable('option', 'snapTolerance');
設(shè)置:$('.selector').draggable('option', 'snapTolerance', 40);

stack : Object : false
Controls the z-Index of the defined group (key 'group' in the hash, accepts jQuery selector) automatically, always brings to front the dragged item. Very useful in things like window managers. Optionally, a 'min' key can be set, so the zIndex cannot go below that value.
初始:('.selector').draggable({ stack: { group: 'products', min: 50 } }); 獲绕ň蟆:var stack =('.selector').draggable('option', 'stack');
設(shè)置:$('.selector').draggable('option', 'stack', { group: 'products', min: 50 });

zIndex : Integer : false
控制當(dāng)拖拽元素時(shí)脑又,改變?cè)氐膠-index值。
初始:('.selector').draggable({ zIndex: 2700 }); 獲取:var zIndex =('.selector').draggable('option', 'zIndex');
設(shè)置:$('.selector').draggable('option', 'zIndex', 2700);

·事件
start
當(dāng)鼠標(biāo)開始拖拽時(shí)问麸,觸發(fā)此事件往衷。
初始:('.selector').draggable({ start: function(event, ui){...} }); 綁定:('.selector').bind('dragstart', function(event, ui){...});

drag
當(dāng)鼠標(biāo)拖拽移動(dòng)時(shí),觸發(fā)此事件口叙。
初始:('.selector').draggable({ drag: function(event, ui){...} }); 綁定:('.selector').bind('drag', function(event, ui){...});

stop
當(dāng)鼠標(biāo)松開時(shí)炼绘,觸發(fā)此事件。
初始:('.selector').draggable({ stop: function(event, ui){...} }); 綁定:('.selector').bind('dragstop', function(event, ui){...});

·方法
destory
從元素中移除拖拽功能妄田。
用法:.draggable( 'destroy' )

disable
禁用元素的拖拽功能。
用法:.draggable( 'disable' )

enable
啟用元素的拖拽功能驮捍。
用法:.draggable( 'enable' )

option
獲取或設(shè)置元素的參數(shù)疟呐。
用法:.draggable( 'option' , optionName , [value] )

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市东且,隨后出現(xiàn)的幾起案子启具,更是在濱河造成了極大的恐慌,老刑警劉巖珊泳,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鲁冯,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡色查,警方通過查閱死者的電腦和手機(jī)薯演,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秧了,“玉大人跨扮,你說我怎么就攤上這事⊙檎保” “怎么了衡创?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)晶通。 經(jīng)常有香客問我璃氢,道長(zhǎng),這世上最難降的妖魔是什么狮辽? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任一也,我火速辦了婚禮,結(jié)果婚禮上隘竭,老公的妹妹穿的比我還像新娘塘秦。我一直安慰自己,他們只是感情好动看,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布尊剔。 她就那樣靜靜地躺著,像睡著了一般菱皆。 火紅的嫁衣襯著肌膚如雪须误。 梳的紋絲不亂的頭發(fā)上挨稿,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音京痢,去河邊找鬼奶甘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛祭椰,可吹牛的內(nèi)容都是我干的臭家。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼方淤,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼钉赁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起携茂,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤你踩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后讳苦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體带膜,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年鸳谜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了膝藕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡卿堂,死狀恐怖束莫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情草描,我是刑警寧澤览绿,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站穗慕,受9級(jí)特大地震影響饿敲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜逛绵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一怀各、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧术浪,春花似錦瓢对、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春法焰,著一層夾襖步出監(jiān)牢的瞬間秧荆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工埃仪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留乙濒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓卵蛉,卻偏偏與公主長(zhǎng)得像颁股,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子傻丝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 第1章 jQuery實(shí)現(xiàn)Ajax應(yīng)用 1-1 使用load()方法異步請(qǐng)求數(shù)據(jù) 使用load()方法通過Ajax請(qǐng)...
    mo默22閱讀 1,699評(píng)論 1 9
  • 找到fullcalendar.js豌蟋, 找到代碼為 isRTL:false,這句話 輸入以下幾句 monthName...
    迷你小小白閱讀 1,665評(píng)論 0 1
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5桑滩? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 27,485評(píng)論 1 45
  • ??JavaScript 與 HTML 之間的交互是通過事件實(shí)現(xiàn)的。 ??事件缭受,就是文檔或?yàn)g覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,490評(píng)論 1 11
  • 皇族有太廟胁澳,百姓有祠堂。祠堂是族人的精神家園米者,家族組織得以維系的有力保障韭畸,也是家族文化的縮影。 如今蔓搞,我們?nèi)セ罩萋?..
    幫您讀書閱讀 888評(píng)論 0 0