<!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; //鼠标按下位置x
downPositonY = event.clientY; //鼠标按下位置y
// originPositionX = $('#d1').offset().left; //元素移动前位置x absolute
// originPositionY = $('#d1').offset().top; //元素移动前位置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实现元素鼠标拖拽
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 1.1元素偏移量offset系列 offset概述 offset翻译过来就是偏移量,我们使用offset系列相关属...
- 原生js中的相关属性及方法 1.鼠标位置相关 (e为事件对象) ①.鼠标距离 整个文档(0,0)的距离 e.pag...