素材网 素材网

纯js实现拖拽排序特效Sortable插件

下载资源()次

阅读次数()次

发布时间:2014-05-03

纯js实现拖拽排序特效Sortable插件
分享到:

用法简介:

来源:xw素材网

纯js实现拖拽排序特效Sortable插件 。
文件引用:

<script src="js/Sortable.js"></script>
<script>
(function (){
	var console = window.console;
	if( !console.log ){
		console.log = function (){
			alert([].join.apply(arguments, ' '));
		};
	}
	new Sortable(foo, {
		group: "words",
		onAdd: function (evt){ console.log('onAdd.foo:', evt.detail); },
		onUpdate: function (evt){ console.log('onUpdate.foo:', evt.detail); },
		onRemove: function (evt){ console.log('onRemove.foo:', evt.detail); }
	});
	new Sortable(bar, {
		group: "words",
		onAdd: function (evt){ console.log('onAdd.bar:', evt.detail); },
		onUpdate: function (evt){ console.log('onUpdate.bar:', evt.detail); },
		onRemove: function (evt){ console.log('onRemove.bar:', evt.detail); }
	});
	new Sortable(multi, {
		draggable: '.tile',
		handle: '.tile__name'
	});
	[].forEach.call(multi.getElementsByClassName('tile__list'), function (el){
		new Sortable(el, { group: 'photo' });
	});
})();
// Background
document.addEventListener( "DOMContentLoaded", function (){
	function setNoiseBackground(el, width, height, opacity){
		var canvas = document.createElement("canvas");
		var context = canvas.getContext("2d");
		canvas.width = width;
		canvas.height = height;
		for( var i = 0; i < width; i++ ){
			for( var j = 0; j < height; j++ ){
				var val = Math.floor(Math.random() * 255);
				context.fillStyle = "rgba(" + val + "," + val + "," + val + "," + opacity + ")";
				context.fillRect(i, j, 1, 1);
			}
		}
		el.style.background = "url(" + canvas.toDataURL("image/png") + ")";
	}
	setNoiseBackground(document.getElementsByTagName('body')[0], 50, 50, 0.02);
}, false );
</script>
<!-- Parallax -->
<script>
(function (){
	var x, y;
	var items = [].slice.call(document.querySelectorAll('.layer')).map(function (el){
		var rect = el.getBoundingClientRect();
		el.x = rect.left;
		el.y = rect.top;
		el.w = rect.right - rect.left;
		el.h = rect.bottom - rect.top;
		el.fX = el.getAttribute('data-force-x') || el.getAttribute('data-force') || 10;
		el.fY = el.getAttribute('data-force-y') || el.getAttribute('data-force') || 10;
		return el;
	});
	document.addEventListener('dragover', function (evt){
		x = evt.clientX;
		y = evt.clientY;
	}, false);
	document.addEventListener('mousemove', function (evt){
		x = evt.clientX;
		y = evt.clientY;
	}, false);
	(function _loop(){
		if( x && y ){
			var winWidth = window.innerWidth;
			var winHeight = window.innerHeight;
			var halfWidth = winWidth / 2;
			var halfHeight = winHeight / 2;
			var rx = x - winWidth/2;
			var ry = winHeight/2 - y;
			items.forEach(function (el){
				var dx = el.w/el.fX * (rx / -halfWidth);
				var dy = el.h/el.fY * (ry / halfHeight);
				el.style['transform'] =
				el.style['-webkit-transform'] = 'translate('+dx+'px,'+dy+'px)';
			});
		}
		requestAnimationFrame(_loop);
	})();
})();
</script>


   

相关标签:

网友评论:

评论

发表 剩余字数:20

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

@ 2013 xwcms.net . All Rights Reserved. xw素材网 | 备案号:晋ICP备13005902号 联系管理员
×

邮箱订阅

什么是邮箱订阅?

邮箱订阅是xw素材网为jquery爱好者与web程序员提供一项以邮箱的方式发送最新jquery资源与素材资源的模式,用户只需在左侧填写正确的邮箱用户名与邮箱地址我们将每天推荐最新优质资源到用户邮箱。当然每份邮箱都会有一个取消订阅按钮,当用户点击取消按钮时我们将会停止对用户发送邮箱资源推送。再次感谢大家对xw素材网的支持与关注。