jQuery网格布局图片拖到排序特效代码下载



11 40 14



特效描述:网格布局 图片拖到排序,jQuery网格布局图片拖到排序特效代码下载

代码结构

1. 引入JS

<script src="js/jquery-1.8.3.min.js"></script>

2. HTML代码

<div class="item_container">
	<div class="item_content" id="imageChange">
		<ul>
			<li>
				<div class="item"> <img src="img/500x500-1.png" width="150" height="150"> 
				<span onClick="removePicture(this)" class="rmPicture close">×</span> </div>
			</li>
			<li>
				<div class="item"> <img src="img/500x500-2.png" width="150" height="150"> 
				<span onClick="removePicture(this)" class="rmPicture close">×</span> </div>
			</li>
			<li>
				<div class="item"> <img src="img/500x500-3.png" width="150" height="150"> 
				<span onClick="removePicture(this)" class="rmPicture close">×</span> </div>
			</li>
			<li>
				<div class="item"> <img src="img/500x500-4.png" width="150" height="150"> 
				<span onClick="removePicture(this)" class="rmPicture close">×</span> </div>
			</li>
			<li>
				<div class="item"> <img src="img/500x500-5.png" width="150" height="150"> 
				<span onClick="removePicture(this)" class="rmPicture close">×</span> </div>
			</li>
			<li>
				<div class="item"> <img src="img/500x500-6.png" width="150" height="150"> 
				<span onClick="removePicture(this)" class="rmPicture close">×</span> </div>
			</li>
			<li>
				<div class="item"> <img src="img/500x500-7.png" width="150" height="150"> 
				<span onClick="removePicture(this)" class="rmPicture close">×</span> </div>
			</li>
			<li>
				<div class="item"> <img src="img/500x500-8.png" width="150" height="150"> 
				<span onClick="removePicture(this)" class="rmPicture close">×</span> </div>
			</li>
			<li>
				<div class="item"> <img src="img/500x500-9.png" width="150" height="150"> 
				<span onClick="removePicture(this)" class="rmPicture close">×</span> </div>
			</li>
		</ul>
	</div>
</div>
<script>
/*
作者: 谢泽龙
联系QQ: 454675335 (灬丿Spam丶)
时间: 2014-9-24
*/
$(function() {
function Pointer(x, y) {
	this.x = x ;
	this.y = y ;
}
function Position(left, top) {
	this.left = left ;
	this.top = top ;
}
$(".item_container .item").each(function(i) {
	//$(".item_content .item").each(function(i) {	
	this.init = function() { // 初始化
		this.box = $(this).parent() ;
		$(this).attr("index", i).css({
			position : "absolute",
			left : this.box.offset().left,
			top : this.box.offset().top
		}).appendTo(".item_container") ;
		this.drag() ;
	},
	this.move = function(callback) {  // 移动
		$(this).stop(true).animate({
			left : this.box.offset().left,
			top : this.box.offset().top
		}, 500, function() {
			if(callback) {
				callback.call(this) ;
			}
		}) ;
	},
	this.collisionCheck = function() {
		var currentItem = this ;
		var direction = null ;
		$(this).siblings(".item").each(function() {
			if(
				currentItem.pointer.x > this.box.offset().left &&
				currentItem.pointer.y > this.box.offset().top &&
				(currentItem.pointer.x < this.box.offset().left + this.box.width()) &&
				(currentItem.pointer.y < this.box.offset().top + this.box.height())
			) {
				// 返回对象和方向
				if(currentItem.box.offset().top < this.box.offset().top) {
					direction = "down" ;
				} else if(currentItem.box.offset().top > this.box.offset().top) {
					direction = "up" ;
				} else {
					direction = "normal" ;
				}
				this.swap(currentItem, direction) ;
			}
		}) ;
	},
	this.swap = function(currentItem, direction) { // 交换位置
		if(this.moveing) return false ;
		var directions = {
			normal : function() {
				var saveBox = this.box ;
				this.box = currentItem.box ;
				currentItem.box = saveBox ;
				this.move() ;
				$(this).attr("index", this.box.index()) ;
				$(currentItem).attr("index", currentItem.box.index()) ;
			},
			down : function() {
				// 移到上方
				var box = this.box ;
				var node = this ;
				var startIndex = currentItem.box.index() ;
				var endIndex = node.box.index(); ;
				for(var i = endIndex; i > startIndex ; i--) {
					var prevNode = $(".item_container .item[index="+ (i - 1) +"]")[0] ;
					node.box = prevNode.box ;
					$(node).attr("index", node.box.index()) ;
					node.move() ;
					node = prevNode ;
				}
				currentItem.box = box ;
				$(currentItem).attr("index", box.index()) ;
			},
			up : function() {
				// 移到上方
				var box = this.box ;
				var node = this ;
				var startIndex = node.box.index() ;
				var endIndex = currentItem.box.index(); ;
				for(var i = startIndex; i < endIndex; i++) {
					var nextNode = $(".item_container .item[index="+ (i + 1) +"]")[0] ;
					node.box = nextNode.box ;
					$(node).attr("index", node.box.index()) ;
					node.move() ;
					node = nextNode ;
				}
				currentItem.box = box ;
				$(currentItem).attr("index", box.index()) ;
			}
		}
		directions[direction].call(this) ;
	},
	this.drag = function() { // 拖拽
		var oldPosition = new Position() ;
		var oldPointer = new Pointer() ;
		var isDrag = false ;
		var currentItem = null ;
		$(this).mousedown(function(e) {
			e.preventDefault() ;
			oldPosition.left = $(this).position().left ;
			oldPosition.top =  $(this).position().top ;
			oldPointer.x = e.clientX ;
			oldPointer.y = e.clientY ;
			isDrag = true ;
			currentItem = this ;
		}) ;
		$(document).mousemove(function(e) {
			var currentPointer = new Pointer(e.clientX, e.clientY) ;
			if(!isDrag) return false ;
			$(currentItem).css({
				"opacity" : "0.8",
				"z-index" : 999
			}) ;
			var left = currentPointer.x - oldPointer.x + oldPosition.left ;
			var top = currentPointer.y - oldPointer.y + oldPosition.top ;
			$(currentItem).css({
				left : left,
				top : top
			}) ;
			currentItem.pointer = currentPointer ;
			// 开始交换位置
			currentItem.collisionCheck() ;
		}) ;
		$(document).mouseup(function() {
			if(!isDrag) return false ;
			isDrag = false ;
			currentItem.move(function() {
				$(this).css({
					"opacity" : "1",
					"z-index" : 0
				}) ;
			}) ;
		}) ;
	}
	this.init() ;
}) ;
}) ;
</script>
<div style="text-align:center;margin:50px 0; font:normal 14px/24px 'MicroSoft YaHei';">
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
</div>



用户评论
大牛,别默默的看了,快登录帮我点评一下吧!:)      登录 | 注册


热门标签: 图片拖动 缩略图 文字拖动 图片相册 拖动排序 图片墙 百叶窗 弹出层拖动 图片网格 图片九宫格 图片高亮 图片对比 图片文字 单排图片 响应式图片 图片列表 图片拖动 图片放大镜 图片叠加 图片翻转旋转 图片延迟加载 图片淡出淡进 图片全屏 图片头像上传 二维码 图片广告 图片放大缩小 html5图片动画 带缩略图的幻灯片 地图 拖动拽动 图片滚动 图片滑动 图片切换 图片收缩展开 旋转木马 图片轮播 自动滚动图片轮播 图标导航菜单 背景切换 手风琴 图表 图片 头像截图

×
×

注册

官方QQ群

扫描上面二维码加微信群

官方QQ群

jQuery/js讨论群
群号:642649996
Css3+Html5讨论群
群号:322131262

加群请备注:从官网了解到