jquery 擴充套件方法($.fn.extend/$.extend) 自定義外掛 拖拽
擴充套件方法
給jquery物件本身擴充套件方法 $.xxx
$.extend({
lg(){
console.log('擴充套件lg方法')
}
})
// $.lg()
給jquery Dom物件擴充套件方法 $(div).xxx
$.fn.extend({
domfun(){
// $(this); 指向呼叫者 $(div)
console.log('擴充套件domfun方法')
return $(this)
}
})
// 或者
$.fn.domfun2 = function(){
// $(this); 指向呼叫者 $(div)
console.log('擴充套件domfun方法')
return $(this)
}
// $(div).domfun().domfun2
自定義外掛 拖拽
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
<style>
div{
width: 100px;
height: 100px;
background-color: aqua;
}
</style>
</head>
<body>
<div>fff</div>
<script>
$.fn.dragGable = function(options={}){
const defaultObj = {
limit: false,
}
Object.assign(defaultObj, options)
const {limit} = defaultObj
const dom = $(this)
// 修改元素定位
dom.css({
position:'absolute',
top:0,
left:0,
cursor: 'move'
})
dom.mousedown(function(e){
let startX = e.pageX - dom.offset().left
let startY = e.pageY - dom.offset().top
$(document).mousemove(function(ed){
let moveX = ed.pageX - startX
let moveY = ed.pageY - startY
// 邊界限制
if(limit){
let rightBorder = $(this).innerWidth() - dom.outerWidth()
let bottomBorder = $(this).innerHeight() - dom.outerHeight()
moveX = moveX <= 0 ? 0 : moveX
moveX = moveX >= rightBorder ? rightBorder : moveX
moveY = moveY <= 0 ? 0 : moveY
moveY = moveY >= bottomBorder ? bottomBorder : moveY
}
dom.css({
left: moveX,
top: moveY
})
})
$(document).mouseup(function(){
$(this).off()
})
return false
})
}
$('div').dragGable({
limit: true, // 是否限制範圍
})
</script>
</body>
</html>
相關文章
- jQuery外掛擴充套件jQuery套件
- jQuery擴充套件外掛jQuery套件
- [外掛擴充套件]自定義表單外掛【2015-02-28更新】套件
- [外掛擴充套件]onethink自定義欄位外掛 百度地圖定位 外掛套件地圖
- JMeter 擴充套件開發:自定義 JMeter 外掛的除錯JMeter套件除錯
- [外掛擴充套件]Ping外掛套件
- [外掛擴充套件]onethink自定義分類標籤-關聯模型套件模型
- JMeter 擴充套件外掛實現對自定義協議的支援JMeter套件協議
- [外掛擴充套件]jQueryFileUpload套件jQuery
- [外掛擴充套件]更新IP外掛套件
- [外掛擴充套件]附件Attachment外掛套件
- [外掛擴充套件]投票外掛1.0套件
- [外掛擴充套件]外掛需求徵集套件
- [外掛擴充套件]jQuery二維碼外掛0.2【更新瀏覽器相容】套件jQuery瀏覽器
- Laravel-admin 自定義擴充套件,jQuery 語法錯誤?Laravel套件jQuery
- [外掛擴充套件]廣告外掛2.0套件
- [外掛擴充套件]焦點圖外掛套件
- [外掛擴充套件]單頁管理外掛套件
- [外掛擴充套件]邀請碼外掛套件
- [外掛擴充套件]騰訊分析外掛套件
- [外掛擴充套件]修改密碼外掛套件密碼
- [外掛擴充套件]友情連結——外掛套件
- [外掛擴充套件]qq登入外掛套件
- [外掛擴充套件]留言版外掛套件
- 外掛擴充套件需求_好友套件
- iOS 通知擴充套件外掛iOS套件
- .Net Core AutoMapper自定義擴充套件方法的使用APP套件
- [外掛擴充套件]三級聯動外掛!!!!!!!!套件
- [外掛擴充套件]APP極光推送外掛!套件APP
- [外掛擴充套件]百度分享外掛套件
- [外掛擴充套件]跪求時間軸外掛套件
- [外掛擴充套件]防護雲Iswaf外掛套件
- [外掛擴充套件]返回頂部ReturnTop外掛套件
- [外掛擴充套件]圖片輪播外掛套件
- [外掛擴充套件]計劃任務外掛套件
- [外掛擴充套件]js版本分頁外掛套件JS
- [外掛擴充套件]外掛開發過程中 模型欄位定義套件模型
- [外掛擴充套件]書架外掛(新外掛後臺)套件