<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
body{
padding-bottom: 20px;
}
.class1{
width: 300px;
height: 300px;
border: 1px solid red;
position: relative;
text-align: center;
line-height: 300px;
background-color: orange
}
.class-resize{
cursor: col-resize;
}
</style>
<script src="https://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>
<!-- <div style="width:1000px;border: 1px solid green"> -->
<div id='d1' class="class1 clearfix"><div class="pox">改變寬高</div></div>
<!-- </div> -->
<script>
$().ready(function(){
// var originPositionX;
// var originPositionY;
var downPositonX;
var downPositonY;
var canResize = false;
$('#d1').on('mousedown',function(e){
if($('#d1').hasClass('class-resize')){
canResize = true;
}
downPositonX = event.clientX; //鼠標(biāo)按下位置x
downPositonY = event.clientY; //鼠標(biāo)按下位置y
// originPositionX = $('#d1').offset().left; //元素移動(dòng)前位置x absolute
// originPositionY = $('#d1').offset().top; //元素移動(dòng)前位置y absolute
originWidth = $('#d1').width();
originHeight = $('#d1').height();
});
$('body').on('mousemove',function(event){
event = event || window.event;
var mouseX = event.clientX;
var mouseY = event.clientY;
var elemLeft = $('#d1').offset().left;
var elemTop = $('#d1').offset().top;
var elemWidth = $('#d1').width();
var elemHeight = $('#d1').height();
if((elemLeft <= mouseX && mouseX <= elemLeft+2)&&(elemTop <= mouseY && mouseY <= elemTop + elemHeight) ||
(elemLeft+elemWidth-2 <= mouseX && mouseX <= elemLeft+elemWidth+2)&&(elemTop <= mouseY && mouseY <= elemTop + elemHeight) ||
((elemLeft <= mouseX && mouseX <= elemLeft+elemWidth)&&( elemTop <= mouseY && mouseY <= elemTop+2)) ||
((elemLeft <= mouseX && mouseX <= elemLeft+elemWidth)&&( elemTop+elemHeight-10 <= mouseY && mouseY <= elemTop+elemHeight+2))
){
$('#d1').addClass('class-resize');
}else{
$('#d1').removeClass('class-resize');
};
if(canResize){
var moveX = event.clientX - downPositonX;
var moveY = event.clientY - downPositonY;
$('#d1').width(originWidth + moveX);
$('#d1').height(originHeight + moveY);
}
});
$('#d1').on('mouseup',function(event){
canResize = false;
})
})
</script>
</body>
</html>
js,jquery實(shí)現(xiàn)元素鼠標(biāo)拖拽
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 1.1元素偏移量offset系列 offset概述 offset翻譯過(guò)來(lái)就是偏移量,我們使用offset系列相關(guān)屬...
- 原生js中的相關(guān)屬性及方法 1.鼠標(biāo)位置相關(guān) (e為事件對(duì)象) ①.鼠標(biāo)距離 整個(gè)文檔(0,0)的距離 e.pag...
- js 實(shí)現(xiàn)拖拽元素 原理:實(shí)現(xiàn)拖拽效果其實(shí)就是通過(guò)監(jiān)聽(tīng)鼠標(biāo)移動(dòng)事件,實(shí)時(shí)改變?cè)氐奈恢?。所以重點(diǎn)就是 進(jìn)行位置的計(jì)...
- demo地址 要點(diǎn)1:css 必須設(shè)置position要點(diǎn)2:鼠標(biāo)事件的應(yīng)用要點(diǎn)3:鼠標(biāo)彈起,事件清空
- 思路: onmousedown :鼠標(biāo)按下的時(shí)候,記錄鼠標(biāo)所在的位置pageX,pageY記錄鼠標(biāo)相對(duì)于盒子的位置...