日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Javascript自由拖拽类

發布時間:2025/3/20 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Javascript自由拖拽类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基本拖拽

new Dragdrop({target 拖拽元素 HTMLElemnt 必選bridge 指定鼠標按下哪個元素時開始拖拽,實現模態對話框時用到 dragable 是否可拖拽 (true)默認dragX true/false false水平方向不可拖拽 (true)默認dragY true/false false垂直方向不可拖拽 (true)默認area [minX,maxX,minY,maxY] 指定拖拽范圍 默認任意拖動callback 拖拽過程中的回調函數 });

?

jQuery插件

/*** jQuery拖拽插件** 簡單使用* $(xx).dragable()* * 配置對象 option* $(xx).dargable({* handle: // @string 鼠標按下開始拖動的元素* canDrag: // @boolean 默認: true* axis: // @string 拖拽方向,默認: "xy"。x: 僅水平方向,y: 僅垂直方向* area: // @array [minX,maxX,minY,maxY] 拖拽范圍 默認任意拖動* inwin: // @boolean 僅在瀏覽器窗口內拖動* cursor: // @string 鼠標狀態* zIndex: // @number 拖拽時zIndex值* fixed: // @boolean 出現滾動條時保持fixed 默認true* })* * 方法 method* $(xx).dragable('disable') // 停止拖拽* $(xx).dragable('enable') // 開啟拖拽* $(xx).dragable('reset') // 重置配置對象option** 事件 event [start:開始拖拽, drag:拖拽中, end:拖拽結束]* $(xx).dragable({* start: function() {* * },* drag: function() {* * },* end: function() {* * }* })*/ ~function(win, doc, $) {var $win = $(win) var $doc = $(doc) var doc = $doc[0]/** 獲取視窗的寬高*/ function getViewSize() {return {width: $win.width(),height: $win.height()} } /** @private initilize 初始化拖拽* @param {Object} option* @param {Object} jqObject*/ function initilize(option, jqObject) {option = option || {}var axisReg = /^xy$/var option = $.extend({handle: '',canDrag: option.canDrag !== false,axis: option.axis || 'xy',area: option.area || [],inwin: option.inwin,cursor: 'move',zIndex: ''}, option)jqObject.each(function(i, elem) {var handle = option.handlevar dragObj = $(elem)var downObj = handle ? dragObj.find(handle) : dragObjvar dargElem = dragObj[0]// 暫存配置對象dragObj.data('optionData', option)dragObj.data('originData', $.extend({}, option))// 設置鼠標狀態downObj.css('cursor', option.cursor)// 需要使用的一些狀態變量var diffX, diffY, viewSizevar dragElemWidth, dragElemHeight, dragElemMarginTop, dragElemMarginLeft// 鼠標mousedowndownObj.mousedown(function(ev) {// 模擬拖拽,需要設置為絕對定位dragObj.css('position', 'absolute')// 鼠標按下的時候計算下window的寬高,拖拽元素尺寸. // 不要再mousemove內計算viewSize = getViewSize()dragElemWidth = Math.max(dargElem.offsetWidth, dargElem.clientWidth)dragElemHeight = Math.max(dargElem.offsetHeight, dargElem.clientHeight)dragElemMarginTop = parseInt(dargElem.style.marginTop, 10) || 0dragElemMarginLeft = parseInt(dargElem.style.marginLeft, 10) || 0// 僅在窗口可視范圍內移動if (option.inwin) {var winX = viewSize.width - dragElemWidthvar winY = viewSize.height - dragElemHeightoption.area = [0, winX, 0, winY]}if (win.captureEvents) { //標準DOMev.stopPropagation()ev.preventDefault()$win.blur(mouseup)} else if(dargElem.setCapture) { //IEdargElem.setCapture()ev.cancelBubble = truedragObj.bind('losecapture', mouseup)}diffX = ev.clientX - dargElem.offsetLeftdiffY = ev.clientY - dargElem.offsetTop$doc.mousemove(mousemove)$doc.mouseup(mouseup)// drag start eventif (option.start) {option.start.call(dragObj)}})function mousemove(ev) {var minX, maxX, minY, maxYvar moveX = ev.clientX - diffXvar moveY = ev.clientY - diffY// 設置拖拽范圍if (option.area) {minX = option.area[0]maxX = option.area[1]minY = option.area[2]maxY = option.area[3]moveX < minX && (moveX = minX) // left 最小值moveX > maxX && (moveX = maxX) // left 最大值moveY < minY && (moveY = minY) // top 最小值moveY > maxY && (moveY = maxY) // top 最大值}// 設置是否可拖拽,有時可能有取消元素拖拽行為的需求if (option.canDrag) {var axis = option.axis//設置位置,并修正marginmoveX = moveX - dragElemMarginTopmoveY = moveY - dragElemMarginLeftif (axis === 'x' || axisReg.test(axis)) {dargElem.style.left = moveX + 'px'}if (axis === 'y' || axisReg.test(axis)) {dargElem.style.top = moveY + 'px'}}// drag eventif (option.drag) {option.drag.call(dragObj, moveX, moveY)}}function mouseup(ev) {// 刪除事件注冊$doc.unbind('mousemove', mousemove)$doc.unbind('mouseup', mouseup)if (win.releaseEvents) { //標準DOM$win.unbind('blur', mouseup)} else if(dargElem.releaseCapture) { //IEdragObj.unbind('losecapture', mouseup)dargElem.releaseCapture()}// drag end evnetif (option.end) {option.end.call(dragObj)}}}) }/** @method dragable jQuery拖拽插件* @param {Object} option* @param {String} key* @param {String} value*/ $.fn.dragable = function(option, key, value) {return this.each(function() {var $self = $(this)if (typeof option === 'string') {var oldOption = $self.data('optionData')switch (option) {case 'destroy':breakcase 'disable':oldOption.canDrag = falsebreakcase 'enable':oldOption.canDrag = truebreakcase 'reset':var originOption = $self.data('originData')$.extend(true, oldOption, originOption)breakcase 'option':if (key && value === undefined) {return oldOption[key]}switch (key) {case 'axis':oldOption.axis = valuebreakcase 'cursor':oldOption.cursor = valuebreakcase 'zIndex':oldOption.zIndex = valuebreak}breakdefault:;}} else {initilize(option, $self)}}) }}(this, document, jQuery);

?



效果

拖拽狀態:x:0, y:0 Drag me. 任意方向 水平方向 垂直方向 停止拖拽 開啟拖拽 恢復初始狀態

?

dragdrop.zip

總結

以上是生活随笔為你收集整理的Javascript自由拖拽类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲天堂8 | 美女扒开尿口让男人捅爽 | 97操| 老色批av | 两根大肉大捧一进一出好爽视频 | 特黄特色大片免费 | 狠狠干2023| av日韩在线播放 | 国产91精品看黄网站在线观看 | 三级男人添奶爽爽爽视频 | 亚洲第一综合 | 啪啪免费视频网站 | 久草久草 | 欧美另类69xxxx | 久久99精品久久久久久琪琪 | 色综合一区二区三区 | 伊人小视频 | 午夜性色福利视频 | 欧美激情区 | 亚洲av永久无码国产精品久久 | 欧美大片a | 少妇高潮一区二区三区喷水 | 激情婷婷小说 | 国产全是老熟女太爽了 | 日韩在线中文字幕 | 欧美日韩一区二区三区国产精品成人 | 中文字幕一区二区三区乱码 | 婷婷深爱激情 | 波多野结衣小视频 | 欧美成人精品一区二区综合免费 | 在线免费观看黄色网址 | 成人爽爽爽 | 午夜免费福利 | 五月天激情开心网 | 成人性生交大片免费卡看 | xxx国产在线观看 | 免费在线观看一区二区三区 | wwwxxx国产| 国产小视频在线观看免费 | 欧洲成人综合网 | 少妇精品无码一区二区三区 | 久久久久久国产 | 欧美精品自拍视频 | 国产污视频在线观看 | 久久久96人妻无码精品 | 四虎黄色网址 | 日本人妻换人妻毛片 | 欧美亚洲国产视频 | 放荡闺蜜高h苏桃情事h | 一级大毛片 | 日韩经典第一页 | www.chengren| 日日夜夜狠狠 | www.色综合.com | 日韩深夜福利 | 久久人爽 | 激情网综合 | 国产精品亚洲专区无码牛牛 | 亚洲人成人 | 精品少妇一区二区 | 久久久精彩视频 | 国产在线观看免费视频软件 | 夜夜爱夜夜操 | 天堂8中文| 国产911| 久久人人爽人人爽人人片av免费 | 欧美一区精品 | 成人在线观看网站 | 在线不卡日本 | 深夜福利一区二区三区 | 欧美88av| 成人国产一区二区三区精品麻豆 | 在线观看的av网址 | 亚洲免费在线视频观看 | 国产精品99久久久久 | 久久叉| 精品国产一区二区视频 | 91免费大片| 蜜桃av在线免费观看 | a天堂中文在线观看 | 香蕉影院在线观看 | av在线日韩| 2019天天操| 日韩在线观看av | 欧美亚洲一区二区三区四区 | 欧美一级免费在线 | 久久久麻豆 | 密乳av| 亚洲精品综合久久 | 国产日韩欧美 | 国产欧美大片 | 成人综合在线视频 | 一区二区三区视频在线观看 | 三级av网| av地址在线观看 | 欧美一区二三区 | 亚洲国产日韩一区二区 | 日韩精品一区二区三区在线 | 一级片视频免费看 |