`

JQ 拖动代码

 
阅读更多
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>JQ 拖动代码</title>
<link rel="stylesheet" href="base.css" />
<script src="jquery-1.10.1.min.js" ></script>
<style type="text/css">
.page{text-align:left;}
.dragDiv{border:1px solid #ddd; padding:10px; width:300px; margin:0 auto; border-radius:4px; box-shadow:0 1px 2px #fefefe; position: fixed;}
</style>
</head>
<body>
<div class="dragDiv" id="drag">
	<div class="drag-head">点击拖动</div>
	<div class="drag-body">
		一直专注于网站<br/>
		网站:<a href="http://onestopweb.cn/" target="_blank">http://onestopweb.cn/</a><br/>
		博客:<a href="http://onestopweb.iteye.com/" target="_blank">http://onestopweb.iteye.com/</a>
	</div>
</div>
<script>
var _drag = {};
_drag.top = 0; //拖动过的位置距离上边
_drag.left = 0; //拖动过的位置距离左边
_drag.maxLeft; //距离左边最大的距离
_drag.maxTop; //距离上边最大的距离
_drag.dragging = false; //是否拖动标志
//拖动函数
function bindDrag(el){ 
	var winWidth = $(window).width(), winHeight =$(window).height(),objWidth = $(el).outerWidth(), objHeight = $(el).outerHeight();
	_drag.maxLeft = winWidth - objWidth, _drag.maxTop = winHeight - objHeight;
	var els = el.style,x=0,y=0;
	var objTop = $(el).offset().top, objLeft = $(el).offset().left;
	$(el).mousedown(function(e){ 
		_drag.dragging = true;
		_drag.isDragged = true;
		x = e.clientX - el.offsetLeft; 
		y = e.clientY - el.offsetTop; 
		el.setCapture && el.setCapture(); 
		$(document).bind('mousemove',mouseMove).bind('mouseup',mouseUp);
		return false;
	}); 
	function mouseMove(e){ 
		e = e || window.event;
		if(_drag.dragging){
			_drag.top = e.clientY - y; 
			_drag.left = e.clientX - x;
			_drag.top = _drag.top > _drag.maxTop ? _drag.maxTop : _drag.top;
			_drag.left = _drag.left > _drag.maxLeft ? _drag.maxLeft : _drag.left;
			_drag.top = _drag.top < 0 ? 0 : _drag.top;
			_drag.left = _drag.left <0 ? 0 : _drag.left;
			els.top = _drag.top + 'px'; 
			els.left = _drag.left+ 'px';
			return false;
		}
	} 
	function mouseUp(e){ 
		_drag.dragging = false; 
		el.releaseCapture && el.releaseCapture(); 
		e.cancelBubble = true;
		$(document).unbind('mousemove',mouseMove).unbind('mouseup',mouseUp); 
	}
	$(window).resize(function(){
		var winWidth = $(window).width(),
		winHeight = $(window).height(),
		el = $(el),
		elWidth = el.outerWidth(),
		elHeight = el.outerHeight(),
		elLeft = parseFloat(el.css('left')),
		elTop = parseFloat(el.css('top'));
		_drag.maxLeft = winWidth - elWidth;
		_drag.maxTop = winHeight - elHeight;
		_drag.top = _drag.maxTop < elTop ? _drag.maxTop : elTop;
		_drag.left = _drag.maxLeft < elLeft ? _drag.maxLeft : elLeft;
		el.css({
			top:_drag.top,
			left:_drag.left
		})
	})
} 
bindDrag(document.getElementById('drag'));
</script>
</body>
</html>

 

效果图:

 

 

 

 

 

 

  • 大小: 20.4 KB
分享到:
评论

相关推荐

    jq最佳拖拽一个方法调用无bug

    收藏的最好用的jq拖拽代码简单好用有注释一个方法调用,用过多次,重要的说三遍最好用的jq拖拽代码简单好用有注释一个方法调用;最好用的jq拖拽代码简单好用有注释一个方法调用。

    jq拖拽(支持双击事件和拖拽)

    在IT行业中,jQuery(通常简称为jq)是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互。本话题主要聚焦于使用jQuery实现拖拽功能,并且扩展到支持双击事件。这在网页设计中非常常见,...

    jq拖拽

    "jq拖拽"指的是利用jQuery实现的拖放功能,这是一种用户交互技术,允许用户通过鼠标或其他输入设备将元素在界面上移动。在网页设计中,拖放功能可以提升用户体验,常见于文件管理器、日历应用、布局构建器等场景。 ...

    JQ 拖拽

    标题中的“JQ 拖拽”指的是使用 jQuery(通常简称为 JQ)库实现的拖放功能。jQuery 是一个广泛使用的 JavaScript 库,它简化了 HTML 文档遍历、事件处理、动画以及Ajax交互等任务。在网页交互中,拖放功能允许用户...

    JQ实现拖拽上传并显示

    "JQ实现拖拽上传并显示"是一个利用jQuery库实现的高效且用户友好的功能,它允许用户通过简单的拖放操作来上传文件,并实时显示上传进度。在本文中,我们将深入探讨如何使用HTML和jQuery实现这一功能,以及涉及的相关...

    JQ UI 拖拽DIV插件

    本文将详细介绍JQ UI中的拖拽功能,以及如何实现一个兼容性高的拖拽DIV插件。 首先,让我们了解JQ UI的拖拽功能。在JQ UI中,`draggable()` 是一个核心方法,用于将元素变为可拖动的。通过调用此方法并传入相应的...

    JQuery对元素拖拽排序,元素拖拽,JQuery拖拽Demo

    用JQuery写的拖动元素进行排序的方法,包含拖动排序、拖动移除、拖动添加。 代码完整可用。没有用到第三方插件,自主可控。 原理是用CSS中position定位来跟踪鼠标移动,就是让元素跟踪鼠标位置,然后判断其在页面...

    JQ 精简的拖动框

    标题中的“JQ 精简的拖动框”指的是使用jQuery库实现的一个轻量级的可拖动对话框或窗口的功能。在网页交互设计中,拖动框常常用于创建可移动的弹出窗口,如设置面板、提示信息或者自定义组件。这种功能可以使用户...

    jQuery拖动DIV滑块代码.zip

    jQuery拖动DIV滑块代码基于jquery-1.9.1.min.js制作,包括只能水平拖动;只能垂直拖动;自由拖动,初始位置固定;自动拖动,初始位置随机;自动拖动,初始位置随机,hander拖动等多种拖动效果。

    jq实现拖拽,可以选择显示的内容

    在这个场景下,"jq实现拖拽,可以选择显示的内容"指的是使用jQuery来创建一个具有拖放功能的交互式界面,用户可以拖动元素并选择显示特定内容,这一功能在很多应用中都很常见,例如QQ空间的相册拖拽布局。...

    jQ拖拽360度旋转特效zip

    jQuery拖拽360度旋转特效是一款基于jQuery框架 Reel插件的3D旋转特效代码,支持鼠标拖拽360度显示商品图,鼠标拖拽旋转的效果很流畅,特别适合做商品立体展示。 jQuery拖拽360度旋转特效演示图:

    jq 表格拖拽

    在这个场景中,"jq 表格拖拽"是指利用jQuery实现的一种功能,允许用户通过鼠标拖动来调整表格行或列的位置,提供更加互动和个性化的用户体验。这个功能在数据展示、数据分析或者任何需要用户自定义排序的场景中非常...

    JQ实现DIV大小、位置拖动调整源码

    这个“JQ实现DIV大小、位置拖动调整源码”是一个基于jQuery的解决方案,它使得开发者能够为网页上的元素添加动态的拖放功能,提升用户体验。 jQuery(简称JQ)是一个轻量级的JavaScript库,它简化了HTML文档遍历、...

    HTML5-JQ-拖拽小 案例

    HTML5和jQuery(JQ)结合使用可以创造出丰富的交互效果,比如这个"拖拽小案例"就是其中之一。在这个案例中,我们将重点讨论如何利用HTML5的拖放(drag and drop)API以及jQuery 3.3.1来实现图片的拖拽功能。 HTML5...

    jquery手机触屏拖拽

    "jQuery手机触屏拖拽"技术就是为此而生,它允许用户通过手指在触屏上的滑动来拖动页面元素,比如实现图片轮播效果。 【描述】:在“jQuery手机触屏滑动图片轮播效果代码”中,我们主要关注的是移动端图片的拖拽切换...

    jquery图片拖拽实例(支持鼠标双击事件拖拽图片)效果代码

    在本实例中,我们将深入探讨如何使用jQuery库实现一个图片拖拽功能,同时支持鼠标双击事件来开启拖拽操作。jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理和动画制作等任务,使得创建交互式的网页变得...

    用Jquery实现DIV锁屏并且可以拖拽DIV窗体代码页面

    在网页开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作、事件...在《用Jquery实现DIV锁屏并且可以拖拽DIV窗体代码页面.docx》文档中,你可以找到更详尽的代码示例和解释,以便进一步学习和应用。

    jq 插件 实现拖拽

    "jq 插件 实现拖拽"的主题涉及到了如何利用jQuery来创建一个允许用户通过拖动来移动元素的功能。这个功能在各种应用场景中都非常常见,例如在网页布局、拖放文件上传或交互式界面设计中。 拖拽功能的实现通常涉及到...

    jQuery拖动滑块时间轴选择日期代码.zip

    《jQuery拖动滑块时间轴选择日期代码》 在前端开发中,用户界面的交互性和易用性至关重要。"jQuery拖动滑块时间轴选择日期代码"是一个实用的JavaScript插件,它允许用户通过拖动滑块在时间轴上直观地选择日期。这个...

Global site tag (gtag.js) - Google Analytics