jquery鼠标拖拽图片移动
时间: 2023-08-01 10:10:47 浏览: 102
您好!要实现鼠标拖拽图片移动,可以使用以下步骤:
1. 在HTML中添加一个包含图片的div,并给其添加一个id:
```html
<div id="img-container">
<img src="your_image_url" alt="your_image_alt">
</div>
```
2. 在CSS中设置该div的样式,并将其宽度设置为图片宽度的2倍:
```css
#img-container {
width: your_image_width * 2;
overflow: hidden; /* 隐藏超出容器部分 */
cursor: move; /* 鼠标变成移动形 */
position: relative; /* 设置为相对定位 */
}
#img-container img {
position: absolute; /* 设置为绝对定位 */
left: 0; /* 图片左侧对齐div左侧 */
top: 0; /* 图片顶部对齐div顶部 */
}
```
3. 使用jQuery为该div绑定鼠标按下、移动、松开事件,通过计算鼠标移动的距离来改变图片的left和top值,实现图片拖拽移动的效果:
```javascript
$(function() {
var container = $('#img-container');
var img = container.find('img');
var isDragging = false; // 是否正在拖拽
var lastX, lastY; // 上一次鼠标位置
container.mousedown(function(e) {
isDragging = true;
lastX = e.clientX;
lastY = e.clientY;
});
container.mousemove(function(e) {
if (isDragging) {
var newX = e.clientX;
var newY = e.clientY;
var deltaX = newX - lastX;
var deltaY = newY - lastY;
var imgLeft = parseInt(img.css('left'));
var imgTop = parseInt(img.css('top'));
img.css({
'left': imgLeft + deltaX + 'px',
'top': imgTop + deltaY + 'px'
});
lastX = newX;
lastY = newY;
}
});
container.mouseup(function() {
isDragging = false;
});
});
```
这样,当鼠标在该div内按下并移动时,图片就会跟随鼠标移动了。
阅读全文