drap插件

//jquery1.8.3


;(function($,window,document,undefined) {
	var pluginName = "drag",
	defaults = {
		onDrag: function(event,elem){},
		onMove: function(event,elem){},
		onDrop: function(event,elem){}
	},
	Plugin = function(elem,options) {
		options = $.extend({},defaults,options);  
		//合并后赋给option,如果option参数和defaults一致,后面覆盖前面
		var doc = $(document),
			$elem = $(elem),
			offset = null;

		var start = function(e) {
			var pos = $elem.offset();
			offset = {   //鼠标指针的位置 - parse,解析字符串成浮点型
				x: e.pageX - (parseFloat($elem.css('left')) || 0),
				y: e.pageY - (parseFloat($elem.css('top')) || 0)
			} 

			options.onDrag(e,elem);
			doc.on("mousemove.draggable",moveMe);
			doc.on("mouseup",end);

			e.preventDefault(); //防止链接打开 URL:
		};

		var moveMe = function(e) {
			$elem.stop().css({
				top: e.pageY - offset.y,
				left: e.pageX - offset.x
			});
			options.onMove(e,elem);
		};

		var end = function(e) {
			options.onDrop(e,elem);
			doc.off("mousemove.draggable",moveMe);
		};

		$elem.on("mousedown", start);
	};

	//fn 其实就是 JavaScript 中 propotype 的一个别名,$ 是 jQuery 的别名,pluginName 才是函数名
	//加了 return this.each... 表示返回jQuery对象,以便链接式操作
	$.fn[pluginName] = function(options) {
		return this.each(function() {
			new Plugin(this,options);
		});
	};
}(jQuery, window, document));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值