js实现图片拖动改变顺序

在web页面中,需要改变多个元素的位置,可以通过元素拖动来实现。HTML5中加入了一个全局属性draggable,通过设置true/false来控制元素是否可拖动。

下面以图片拖动为例,用jQuery来实现:页面上有多个图片,把一个图片拖动到其他两个图片中间,就可以将这个图片的位置插入到两图之间。

<!DOCTYPE html>
<html>
<head>
<style>
	.img-div img {
		width:200px;
		height:200px;
		float: left;
	}
	.img-div {
		float: left;
	}
	.drop-left,.drop-right {
		width: 50px;
		height: 200px;
		float: left;
	}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script>
	$(document).ready(function() {

		// 正在拖动的图片的父级DIV
		var $srcImgDiv = null;

		// 开始拖动
		$(".img-div img").bind("dragstart", function() {
			$srcImgDiv = $(this).parent();
		});

		// 拖动到.drop-left,.drop-right上方时触发的事件
		$(".drop-left,.drop-right").bind("dragover", function(event) {

			// 必须通过event.preventDefault()来设置允许拖放
			event.preventDefault();
		});

		// 结束拖动放开鼠标的事件
		$(".drop-left").bind("drop", function(event) {
			event.preventDefault();
			if($srcImgDiv[0] != $(this).parent()[0]) {
				$(this).parent().before($srcImgDiv);
			}
		});
		$(".drop-right").bind("drop", function(event) {
			event.preventDefault();
			if($srcImgDiv[0] != $(this).parent()[0]) {
				$(this).parent().after($srcImgDiv);
			}
		});

	});
</script>
</head>
<body>
	<div class="img-div">
		<div class="drop-left"></div>
		<img src="http://photos.tuchong.com/38538/f/6864556.jpg" draggable="true">
		<div class="drop-right"></div>
	</div>
	<div class="img-div">
		<div class="drop-left"></div>
		<img src="http://photos.tuchong.com/349669/f/6695960.jpg" draggable="true">
		<div class="drop-right"></div>
	</div>
	<div class="img-div">
		<div class="drop-left"></div>
		<img src="http://photos.tuchong.com/349669/f/6683901.jpg" draggable="true">
		<div class="drop-right"></div>
	</div>
	<div class="img-div">
		<div class="drop-left"></div>
		<img src="http://photos.tuchong.com/349669/f/5121337.jpg" draggable="true">
		<div class="drop-right"></div>
	</div>
</body>
</html>

dragstart是开始拖动元素的事件,dragover是拖动到元素上方的事件,drop是拖动结束松开鼠标的事件。

draggable="true"表示img元素是可以拖动的,不过实际上img默认就是可拖动的,所以这个属性也可以去掉,如果要拖动div元素那么就需要设置draggable="true"。

class为drop-left和drop-right的div元素放在图片的左右侧,用于接收其他图片拖动到这个位置。

作者:叉叉哥   转载请注明出处:http://blog.csdn.net/xiao__gui/article/details/25695025

js实现图片拖动改变顺序

时间: 2024-10-05 19:17:58

js实现图片拖动改变顺序的相关文章

javascript完美实现图片拖动改变顺序

在web页面中,需要改变多个元素的位置,可以通过元素拖动来实现.HTML5中加入了一个全局属性draggable,通过设置true/false来控制元素是否可拖动. 下面以图片拖动为例,用jQuery来实现:页面上有多个图片,把一个图片拖动到其他两个图片中间,就可以将这个图片的位置插入到两图之间. html> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js">&l

关于H5实现微信长按图片拖动调整顺序

当你明白功能的实现逻辑的时候,往往实现的过程中会给你带来惊喜,所以先去明确功能的实现逻辑,剩下的事情会水到渠成比如这个功能,开始的时候我是这样想的,第一张图片的左侧中点作为左侧触发边界点,右侧中点作为右侧触发边界点,当第一张图片的右侧边界点拖动到第二张图片的右半部分时,将第二张图片移动到左边,并交换两张图片的index和位置.当第二张图片的左侧边界点拖动到第一张图片的左半部分时,将第一张图片移动到右边,并较远两张图片的index和位置.但是实现后发现只能拖动一次,就是左边的拖到右边,右边的拖动到

Dev Express Treelist 同一个树上拖动 改变顺序

using DevExpress.XtraTreeList; using DevExpress.XtraTreeList.Nodes; private void treeList1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { TreeListNode dragNode, targetNode; TreeList tl = sender as TreeList; Point p = tl.PointToClient

原生JS编写图片切换效果和点击按钮的样式变化

这两天更进一步的了解了JS,老师让我们用原生的js编写图片切换和改变点击按钮样式,就是让我们学会怎么去把一个问题拆分,怎么将一个大问题拆分成许多的小问题,再用函数封装起来.比如一个点击按钮,让其点击时背景色发生改变,点击另一个时,上一个按钮要变回原来本有的颜色:这个问题用jquery,一行代码就搞定,但是用原生js就得分三个部分来考虑: 1.添加改变背景的样式. 2.怎么获取到除了当前点击的按钮以外其他的兄弟节点. 3.怎么去除按钮的样式属性. 也讲了事件委托,实现了可以删除新添加的元素的功能.

js实现可拖动Div

js实现可拖动Div 随着时代的变化,越来越感觉到js的重要性,js不仅可以做web页面(如Ext框架),还可以做一些web的特效,这些特效不仅兼容PC,而且兼容手机端,毕竟是基于浏览器的,和平台没关系.现在微软的windows8 系统的App都可以用js开发了,大家有时间可以去尝试一下. 现在切入正题,说一下js 实现可拖动Div.实现这个功能我们先说一下思路: 1.捕捉鼠标div的mousedown事件 2.捕捉 document的   mousemove事件 3.取消事件 然后我们看一下代

JS之相册拖动管理

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JS之相册拖动管理</title&g

【COCOS2DX-LUA 脚本开发之十二】Hybrid模式-利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)

转载自:http://www.himigame.com/iphone-cocos2dx/1354.html 首先说明一个问题: 为什么要在线更新资源和脚本文件!? 对于此问题,那要说的太多了,简单概括,如果你的项目已经在google play 或Apple Store 等平台上架了,那么当你项目需要做一些活动或者修改前端的一些代码等那么你需要重新提交一个新版本给平台,这时候你的上架时候是个不确定的时候,具体什么时候能上架,主要跟平台有关,你再着急,也没有用的. 那么如果你的项目是使用脚本语言进行

html实现 页面禁止右键 禁止复制 禁止图片拖动 禁止复制和剪切

众所周知,一般的屏蔽的方法是用JS来编写的脚本,但是也可以直接通过修改网页属性的方法来屏蔽右键 禁止复制. 禁止右键 oncontextmenu="return false" 禁止复制和剪切: oncopy="return false;" oncut="return false;" 禁止复制 onselectstart="return false" 禁止图片拖动 ondragstart="return false&q

jQuery实现鼠标拖动改变Div高度

最近项目中需要在DashBoard页面做一个事件通知栏,该通知栏固定位于页面底部,鼠标拖动该DIV实现自动改变高度扩展内容显示区域. 以下是一个设计原型,基于jQuery实现,只实现了拖动效果,没有做页面美化,可以根据需求做相应修改. 直接上代码 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quo